佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1397|回复: 12

asp upload file 碰到难题

[复制链接]
发表于 8-6-2006 06:23 PM | 显示全部楼层 |阅读模式
我用的asp upload class 是 从http://www.freeaspupload.net/ 下载的

现在难题是这样的

当我按submit后它会自动create一个folder然后把已选的文件upload在folder里
还有文件名称还需要从form的text submit

原装是这样的http://www.freeaspupload.net/freeaspupload/viewsource.asp

[ 本帖最后由 quantum^_^ 于 9-6-2006 10:07 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 8-6-2006 07:34 PM | 显示全部楼层
你有没有看过里面的code先。。。。

我想你因该看看code了才问人。。。
回复

使用道具 举报

 楼主| 发表于 8-6-2006 10:31 PM | 显示全部楼层
原帖由 红发 于 8-6-2006 07:34 PM 发表
你有没有看过里面的code先。。。。

我想你因该看看code了才问人。。。


好!!迟一点
回复

使用道具 举报

 楼主| 发表于 9-6-2006 09:58 AM | 显示全部楼层
这个是freeASPupload.asp 我本身已加入  FS 是为了 在上传的时候判断有没有档案的存在 以免覆盖

只改Public Sub Save1(fname, path)
fname是我自己加的

可是fname是没有value的

  1. <%

  2. Class FreeASPUpload
  3.         Public UploadedFiles
  4.         Public FormElements

  5.         Private VarArrayBinRequest
  6.         Private StreamRequest
  7.         Private uploadedYet
  8.         Private FS

  9.         Private Sub Class_Initialize()
  10.                 Set UploadedFiles = Server.CreateObject("Scripting.Dictionary")
  11.                 Set FormElements = Server.CreateObject("Scripting.Dictionary")
  12.                 Set StreamRequest = Server.CreateObject("ADODB.Stream")
  13.                 Set FS = Server.CreateObject("Scripting.FileSystemObject")
  14.                 StreamRequest.Type = 1 'adTypeBinary
  15.                 StreamRequest.Open
  16.                 uploadedYet = false
  17.         End Sub
  18.        
  19.         Private Sub Class_Terminate()
  20.                 If IsObject(UploadedFiles) Then
  21.                         UploadedFiles.RemoveAll()
  22.                         Set UploadedFiles = Nothing
  23.                 End If
  24.                 If IsObject(FormElements) Then
  25.                         FormElements.RemoveAll()
  26.                         Set FormElements = Nothing
  27.                 End If
  28.                 if IsObject(FS) Then
  29.                
  30.                         Set FS = Nothing
  31.                 End If
  32.                
  33.                 StreamRequest.Close
  34.                 Set StreamRequest = Nothing
  35.         End Sub

  36.         Public Property Get Form(sIndex)
  37.                 Form = ""
  38.                 If FormElements.Exists(LCase(sIndex)) Then Form = FormElements.Item(LCase(sIndex))
  39.         End Property

  40.         Public Property Get Files()
  41.                 Files = UploadedFiles.Items
  42.         End Property


  43.         'Calls Upload to extract the data from the binary request and then saves the uploaded files
  44.         Public Sub Save1(fname, path)
  45.                 Dim streamFile, fileItem

  46.                 if Right(path, 1) <> "" then path = path & ""

  47.                 if not uploadedYet then Upload1

  48.                 For Each fileItem In UploadedFiles.Items
  49.                         if not FS.FileExists(path & fileItem.FileName) then
  50.                                 Set streamFile = Server.CreateObject("ADODB.Stream")
  51.                                 streamFile.Type = 1
  52.                                 streamFile.Open
  53.                                 StreamRequest.Position=fileItem.Start
  54.                                 StreamRequest.CopyTo streamFile, fileItem.Length
  55.                                 'streamFile.SaveToFile path & fileItem.FileName, 2
  56.                                 'streamFile.SaveToFile path & "logo1" & right(fileItem.filename,4), 2
  57.                                 streamFile.SaveToFile Path & fname, 2
  58.                                 streamFile.close
  59.                                 Set streamFile = Nothing
  60.                                 fileItem.Path = path & fileItem.FileName
  61.                                 'response.write "<br>" &right(fileItem.filename,4) & "<br>"
  62. '                                response.write "<br>" &fileItem.items&"<br>"
  63.                                 response.write "<br>" &fname&"<br>"
  64.                                 response.write "<br>" &path&"<br>"
  65.                         else
  66.                         response.write "<br><b>file exists</b><br>"
  67.                         end if
  68.                  Next

  69.                  
  70.         End Sub
  71.        
  72.        

  73.         Public Function SaveBinRequest(path) ' For debugging purposes
  74.                 StreamRequest.SaveToFile path & "\debugStream.bin", 2
  75.         End Function

  76.         Public Sub DumpData() 'only works if files are plain text
  77.                 Dim i, aKeys, f
  78.                 response.write "Form Items:<br>"
  79.                 aKeys = FormElements.Keys
  80.                 For i = 0 To FormElements.Count -1 ' Iterate the array
  81.                         response.write aKeys(i) & " = " & FormElements.Item(aKeys(i)) & "<BR>"
  82.                 Next
  83.                 response.write "Uploaded Files:<br>"
  84.                 For Each f In UploadedFiles.Items
  85.                         response.write "Name: " & f.FileName & "<br>"
  86.                         response.write "Type: " & f.ContentType & "<br>"
  87.                         response.write "Start: " & f.Start & "<br>"
  88.                         response.write "Size: " & f.Length & "<br>"
  89.                  Next
  90.            End Sub

  91.         Private Sub Upload1()
  92.                 Dim nCurPos, nDataBoundPos, nLastSepPos
  93.                 Dim nPosFile, nPosBound
  94.                 Dim sFieldName, osPathSep, auxStr

  95.                 'RFC1867 Tokens
  96.                 Dim vDataSep
  97.                 Dim tNewLine, tDoubleQuotes, tTerm, tFilename, tName, tContentDisp, tContentType
  98.                 tNewLine = Byte2String(Chr(13))
  99.                 tDoubleQuotes = Byte2String(Chr(34))
  100.                 tTerm = Byte2String("--")
  101.                 tFilename = Byte2String("filename=""")
  102.                 tName = Byte2String("name=""")
  103.                 tContentDisp = Byte2String("Content-Disposition")
  104.                 tContentType = Byte2String("Content-Type:")

  105.                 uploadedYet = true

  106.                 on error resume next
  107.                 VarArrayBinRequest = Request.BinaryRead(Request.TotalBytes)
  108.                 if Err.Number <> 0 then
  109.                         response.write "<br><br><B>System reported this error:</B><p>"
  110.                         response.write Err.Description & "<p>"
  111.                         response.write "The most likely cause for this error is the incorrect setup of AspMaxRequestEntityAllowed in IIS MetaBase. Please see instructions in the <A HREF='http://www.freeaspupload.net/freeaspupload/requirements.asp'>requirements page of freeaspupload.net</A>.<p>"
  112.                         Exit Sub
  113.                 end if
  114.                 on error goto 0 'reset error handling

  115.                 nCurPos = FindToken(tNewLine,1) 'Note: nCurPos is 1-based (and so is InstrB, MidB, etc)

  116.                 If nCurPos <= 1  Then Exit Sub
  117.                  
  118.                 'vDataSep is a separator like -----------------------------21763138716045
  119.                 vDataSep = MidB(VarArrayBinRequest, 1, nCurPos-1)

  120.                 'Start of current separator
  121.                 nDataBoundPos = 1

  122.                 'Beginning of last line
  123.                 nLastSepPos = FindToken(vDataSep & tTerm, 1)

  124.                 Do Until nDataBoundPos = nLastSepPos
  125.                        
  126.                         nCurPos = SkipToken(tContentDisp, nDataBoundPos)
  127.                         nCurPos = SkipToken(tName, nCurPos)
  128.                         sFieldName = ExtractField(tDoubleQuotes, nCurPos)

  129.                         nPosFile = FindToken(tFilename, nCurPos)
  130.                         nPosBound = FindToken(vDataSep, nCurPos)
  131.                        
  132.                         If nPosFile <> 0 And  nPosFile < nPosBound Then
  133.                                 Dim oUploadFile
  134.                                 Set oUploadFile = New UploadedFile
  135.                                
  136.                                 nCurPos = SkipToken(tFilename, nCurPos)
  137.                                 auxStr = ExtractField(tDoubleQuotes, nCurPos)
  138.                 ' We are interested only in the name of the file, not the whole path
  139.                 ' Path separator is \ in windows, / in UNIX
  140.                 ' While IE seems to put the whole pathname in the stream, Mozilla seem to
  141.                 ' only put the actual file name, so UNIX paths may be rare. But not impossible.
  142.                 osPathSep = ""
  143.                 if InStr(auxStr, osPathSep) = 0 then osPathSep = "/"
  144.                                 oUploadFile.FileName = Right(auxStr, Len(auxStr)-InStrRev(auxStr, osPathSep))

  145.                                 if (Len(oUploadFile.FileName) > 0) then 'File field not left empty
  146.                                         nCurPos = SkipToken(tContentType, nCurPos)
  147.                                        
  148.                     auxStr = ExtractField(tNewLine, nCurPos)
  149.                     ' NN on UNIX puts things like this in the streaa:
  150.                     '    ?? python py type=?? python application/x-python
  151.                                         oUploadFile.ContentType = Right(auxStr, Len(auxStr)-InStrRev(auxStr, " "))
  152.                                         nCurPos = FindToken(tNewLine, nCurPos) + 4 'skip empty line
  153.                                        
  154.                                         oUploadFile.Start = nCurPos-1
  155.                                         oUploadFile.Length = FindToken(vDataSep, nCurPos) - 2 - nCurPos
  156.                                        
  157.                                         If oUploadFile.Length > 0 Then UploadedFiles.Add LCase(sFieldName), oUploadFile
  158.                                 End If
  159.                         Else
  160.                                 Dim nEndOfData
  161.                                 nCurPos = FindToken(tNewLine, nCurPos) + 4 'skip empty line
  162.                                 nEndOfData = FindToken(vDataSep, nCurPos) - 2
  163.                                 If Not FormElements.Exists(LCase(sFieldName)) Then
  164.                                         FormElements.Add LCase(sFieldName), String2Byte(MidB(VarArrayBinRequest, nCurPos, nEndOfData-nCurPos))
  165.                                 else
  166.                     FormElements.Item(LCase(sFieldName))= FormElements.Item(LCase(sFieldName)) & ", " & String2Byte(MidB(VarArrayBinRequest, nCurPos, nEndOfData-nCurPos))
  167.                 end if

  168.                         End If

  169.                         'Advance to next separator
  170.                         nDataBoundPos = FindToken(vDataSep, nCurPos)
  171.                 Loop
  172.                 StreamRequest.Write(VarArrayBinRequest)
  173.         End Sub

  174.         Private Function SkipToken(sToken, nStart)
  175.                 SkipToken = InstrB(nStart, VarArrayBinRequest, sToken)
  176.                 If SkipToken = 0 then
  177.                         Response.write "Error in parsing uploaded binary request."
  178.                         Response.End
  179.                 end if
  180.                 SkipToken = SkipToken + LenB(sToken)
  181.         End Function

  182.         Private Function FindToken(sToken, nStart)
  183.                 FindToken = InstrB(nStart, VarArrayBinRequest, sToken)
  184.         End Function

  185.         Private Function ExtractField(sToken, nStart)
  186.                 Dim nEnd
  187.                 nEnd = InstrB(nStart, VarArrayBinRequest, sToken)
  188.                 If nEnd = 0 then
  189.                         Response.write "Error in parsing uploaded binary request."
  190.                         Response.End
  191.                 end if
  192.                 ExtractField = String2Byte(MidB(VarArrayBinRequest, nStart, nEnd-nStart))
  193.         End Function

  194.         'String to byte string conversion
  195.         Private Function Byte2String(sString)
  196.                 Dim i
  197.                 For i = 1 to Len(sString)
  198.                    Byte2String = Byte2String & ChrB(AscB(Mid(sString,i,1)))
  199.                 Next
  200.         End Function

  201.         'Byte string to string conversion
  202.         Private Function String2Byte(bsString)
  203.                 Dim i
  204.                 String2Byte =""
  205.                 For i = 1 to LenB(bsString)
  206.                    String2Byte = String2Byte & Chr(AscB(MidB(bsString,i,1)))
  207.                 Next
  208.         End Function
  209. End Class

  210. Class UploadedFile
  211.         Public ContentType
  212.         Public Start
  213.         Public Length
  214.         Public Path
  215.         Private nameOfFile

  216.     ' Need to remove characters that are valid in UNIX, but not in Windows
  217.     Public Property Let FileName(fN)
  218.         nameOfFile = fN
  219.         nameOfFile = SubstNoReg(nameOfFile, "", "_")
  220.         nameOfFile = SubstNoReg(nameOfFile, "/", "_")
  221.         nameOfFile = SubstNoReg(nameOfFile, ":", "_")
  222.         nameOfFile = SubstNoReg(nameOfFile, "*", "_")
  223.         nameOfFile = SubstNoReg(nameOfFile, "?", "_")
  224.         nameOfFile = SubstNoReg(nameOfFile, """", "_")
  225.         nameOfFile = SubstNoReg(nameOfFile, "<", "_")
  226.         nameOfFile = SubstNoReg(nameOfFile, ">", "_")
  227.         nameOfFile = SubstNoReg(nameOfFile, "|", "_")
  228.     End Property

  229.     Public Property Get FileName()
  230.         FileName = nameOfFile
  231.     End Property

  232.     'Public Property Get FileN()ame
  233. End Class


  234. %>


复制代码

[ 本帖最后由 quantum^_^ 于 9-6-2006 10:01 AM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 9-6-2006 10:12 AM | 显示全部楼层
楼上的fname是在这里传送的
可是不懂为什么没有值

  1. function SaveFiles
  2.     Dim Upload, fileName, fileSize, ks, i, fileKey, fname

  3.         Set Upload = New FreeASPUpload
  4. fname = request("enter_a_number")

  5.     Upload.Save1 fname, uploadsDirVar
  6. '        Upload.Save1 uploadsDirVar

  7.         ' If something fails inside the script, but the exception is handled
  8.         If Err.Number<>0 then Exit function

  9.     SaveFiles = ""
  10.     ks = Upload.UploadedFiles.keys
  11.     if (UBound(ks) <> -1) then
  12.        SaveFiles = ""
  13.         for each fileKey in Upload.UploadedFiles.keys
  14.                          SaveFiles = SaveFiles & "<B>Files uploaded:</B> "
  15.             SaveFiles = SaveFiles & Upload.UploadedFiles(fileKey).FileName & " (" & Upload.UploadedFiles(fileKey).Length & "B) "
  16.             SaveFiles = SaveFiles & "<br>Content Type = " & Upload.UploadedFiles(fileKey).ContentType & "<br><br>"
  17.         next
  18.     else
  19.         SaveFiles = "The file name specified in the upload form does not correspond to a valid file in the system."
  20.     end if

  21.         SaveFiles = SaveFiles & "<br>Enter a number = " & Upload.Form("enter_a_number") & "<br>"
  22.         SaveFiles = SaveFiles & "Checkbox values = " & Upload.Form("checkbox_values") & "<br>"

  23. end function
  24. %>

复制代码
回复

使用道具 举报

发表于 9-6-2006 11:07 AM | 显示全部楼层
你可以test看用response.write(fname)看看有没有值先。


放在那里我相信你因该知道。^^
回复

使用道具 举报

Follow Us
 楼主| 发表于 9-6-2006 11:25 AM | 显示全部楼层
原帖由 红发 于 9-6-2006 11:07 AM 发表
你可以test看用response.write(fname)看看有没有值先。


放在那里我相信你因该知道。^^



fname 是没有值
Err.Description是这样写

  1. 006~ASP 0206~Cannot call BinaryRead~Cannot call BinaryRead after using Request.Form collection.
复制代码


我要的是那个filename是动手写不是自动的
动手写是从textbox那里输入
然后用request("textbox")叫出来

可是那个err.description应该是call BinaryRead先才来request.form
回复

使用道具 举报

发表于 9-6-2006 11:46 AM | 显示全部楼层
原帖由 quantum^_^ 于 9-6-2006 11:25 AM 发表



fname 是没有值
Err.Description是这样写

006~ASP 0206~Cannot call BinaryRead~Cannot call BinaryRead after using Request.Form collection.


我要的是那个filename是动手写不是自动的
动手写是 ...


这样的话可以给我你的full code吗?
include file name
我test看一下。

因为我not sure是不是要那样写。
回复

使用道具 举报


ADVERTISEMENT

发表于 9-6-2006 11:08 PM | 显示全部楼层
你的 html form 怎么写?
回复

使用道具 举报

 楼主| 发表于 17-6-2006 01:17 PM | 显示全部楼层
原帖由 goatstudio 于 9-6-2006 11:08 PM 发表
你的 html form 怎么写?



  1. <%@ Language=VBScript %>
  2. <%
  3. option explicit
  4. Server.ScriptTimeout = 600
  5. %>
  6. <!-- #include file="freeaspupload.asp" -->
  7. <%
  8.   Dim uploadsDirVar
  9.   dim savestring
  10.   savestring = server.mappath("..") + "/LOGO/"  
  11.   uploadsDirVar = savestring
  12. 'if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  13. if request("POST") <> "" then
  14. 'response.write ("posted")
  15. 'response.write  request.ServerVariables("SCRIPT_NAME") request.ServerVariables("REQUEST_METHOD")
  16. 'call check
  17. response.write request("attach1")
  18. response.write request("enter_a_number")
  19. response.write request("checkbox_values")
  20. uploadsDirVar = uploadsDirVar & request("enter_a_number")
  21. response.write SaveFiles

  22. end if




  23. function SaveFiles
  24. 'response.write request.form("enter_a_number")
  25.     Dim Upload, fileName, fileSize, ks, i, fileKey, fname

  26.         Set Upload = New FreeASPUpload
  27. fname = request("enter_a_number"")
  28.     Upload.Save1 fname, uploadsDirVar
  29. '        Upload.Save1 uploadsDirVar

  30.         ' If something fails inside the script, but the exception is handled
  31.         If Err.Number<>0 then Exit function

  32.     SaveFiles = ""
  33.     ks = Upload.UploadedFiles.keys
  34.     if (UBound(ks) <> -1) then
  35.        SaveFiles = ""
  36.         for each fileKey in Upload.UploadedFiles.keys
  37.                          SaveFiles = SaveFiles & "<B>Files uploaded:</B> "
  38.             SaveFiles = SaveFiles & Upload.UploadedFiles(fileKey).FileName & " (" & Upload.UploadedFiles(fileKey).Length & "B) "
  39.             SaveFiles = SaveFiles & "<br>Content Type = " & Upload.UploadedFiles(fileKey).ContentType & "<br><br>"
  40.         next
  41.     else
  42.         SaveFiles = "The file name specified in the upload form does not correspond to a valid file in the system."
  43.     end if

  44.         SaveFiles = SaveFiles & "<br>Enter a number = " & Upload.Form("enter_a_number") & "<br>"
  45.         SaveFiles = SaveFiles & "Checkbox values = " & Upload.Form("checkbox_values") & "<br>"

  46. end function

  47.   


  48.   


  49. %>
  50. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  51. <html xmlns="http://www.w3.org/1999/xhtml">
  52. <head>
  53. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  54. <title>Inser Brand</title>
  55. </head>

  56. <body>
  57. <script>
  58. function onSubmitForm() {
  59.     var formDOMObj = document.frmSend;
  60.     if (formDOMObj.attach1.value == "" && formDOMObj.attach2.value == "" && formDOMObj.attach3.value == "" && formDOMObj.attach4.value == "" )
  61.         alert("Please press the browse button and pick a file.")
  62.     else
  63.         return true;
  64.     return false;
  65. }
  66. </script>

  67.   <form name="frmSend" method="POST"  action="" onSubmit="return onSubmitForm();">
  68.   <input name="POST" type="hidden" value="TRUE" />
  69.         <B>File names:</B><br>
  70.     File : <input name="attach1" type="file" size=35><br>
  71.     <br>
  72.         <!-- These input elements are obviously optional and just included here for demonstration purposes -->
  73.         <B>Additional fields (demo):</B><br>
  74.         Enter a number: <input type="text" name="enter_a_number"><br>
  75.     Checkbox values: <input type="checkbox" value="1" name="checkbox_values">-1 <input type="checkbox" value="2" name="checkbox_values">-2<br>
  76.         <!-- End of additional elements -->
  77.     <input style="margin-top:4" type=submit value="Upload">
  78.     </form>

  79. </body>
  80. </html>

复制代码

[ 本帖最后由 quantum^_^ 于 17-6-2006 01:21 PM 编辑 ]
回复

使用道具 举报

发表于 17-6-2006 02:58 PM | 显示全部楼层
给你看看我的code先


  1. <%Dim Form: Set Form = New ASPForm %>
  2. <!--#INCLUDE FILE="_upload.asp"-->

  3. <% Form.SizeLimit = &HA00000'10MB
  4. Const fsCompletted  = 0
  5. IF Form.State = fsCompletted THEN 'Completted

  6.         DestinationPath = Server.mapPath("../image/product")
  7.         DestinationFileName = DestinationPath & "/"&Form("SourceFile").FileName
  8.         Form("SourceFile").SaveAs DestinationFileName
  9.         record = 1

  10. ELSEIF Form.State > 10 THEN

  11.           Const fsSizeLimit = &HD
  12.           Select case Form.State
  13.                         case fsSizeLimit: response.write"<br><Font Color=red>Source form size (" & Form.TotalBytes & "B) exceeds form limit (" & Form.SizeLimit & "B)</Font><br>"
  14.                         case else response.write "<br><Font Color=red>Some form error.</Font><br>"
  15.           end Select
  16.          
  17. END IF'Form.State = 0 then

  18. If record = 1 then
  19.         code=Ucase(Form("code"))
  20.         item=Ucase(Form("item"))
  21.         cate_id=Ucase(Form("cid"))
  22.         prices=Form("prices")
  23.         descri=Ucase(Form("descri"))
  24.         set rs=server.CreateObject("adodb.recordset")
  25.         sql="select * from product where code='"&code&"' and item='"&item&"'"
  26.         rs.open sql,conn,3,2
  27.        
  28.         If not (rs.bof and rs.eof) Then
  29.                 rs.close
  30.                 response.Redirect("add_new_product.asp?cid="&cate_id&"&action=fail")
  31.         Else
  32.                    sql="insert into product(code, item, cate_id, prices, descri, img) values('"&code&"','"&item&"', '"&cate_id&"', '"&prices&"', '"&descri&"'  ,'"&Form("SourceFile").FileName&"')"
  33.                 conn.Execute(sql)
  34.                 Response.Redirect("product_view.asp?cid="&cate_id&"")
  35.         End If
  36. End if
  37. %>
复制代码

[ 本帖最后由 红发 于 17-6-2006 03:12 PM 编辑 ]
回复

使用道具 举报

发表于 17-6-2006 03:06 PM | 显示全部楼层
上面的code不是最好的。
但是和你的东西比起来是有90%一样的。

还有你所谓的“它会自动create一个folder然后把已选的文件upload在folder里”

那是因为你的code的问题

  1. savestring = server.mappath("..") + "/LOGO/"  
复制代码


上面我说过了。。。。

忘了说。
我的是follow我的file的名
如:我的file name 是 45.gif
save进我的db也是45.gif

来,在比较一下我的code和你的,
希望你可以看出来

[ 本帖最后由 红发 于 17-6-2006 03:15 PM 编辑 ]
回复

使用道具 举报

发表于 18-6-2006 04:49 AM | 显示全部楼层
你的script都没有把file upload上,
只是post到file的名字和path罢了。

因为form attribute-> enctype 没有set成 multipart/form-data

所以
line 206:
VarArrayBinRequest = Request.BinaryRead(Request.TotalBytes)
才会有error。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 13-11-2024 11:25 PM , Processed in 0.131888 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表