[ASP]使用 xmlhttp 分塊上傳文件
發表時間:2023-08-17 來源:明輝站整理相關軟件相關文章人氣:
[摘要]編寫思路:把本地文件在客戶端通過base64編碼以后發送目的地.測試過程中,上傳文件過大,導致超時不成功.后來經過改善.把編碼分段發送.測試20M成功編寫目的:在傳統的解決方案里面,一次一次選取上傳...
編寫思路:把本地文件在客戶端通過base64編碼以后發送目的地.
測試過程中,上傳文件過大,導致超時不成功.
后來經過改善.把編碼分段發送.測試20M成功
編寫目的:在傳統的解決方案里面,一次一次選取上傳可以.但是在碰到把數據庫里文件路徑讀出來,并把這些文件上傳到一個地方的時候就比較麻煩.
如果得到路徑一個一個去找到用ftp當然也是可以的,但每次找這些文件我看都會比較費時。這里編寫這個主要就是為了通過數據庫里的文件路徑取得文件.把文件一次批量上傳到一個地方.
其主要目的還是為了鍛煉一下自己.
解決過程:起初試著用模擬鍵盤輸入強行賦值給file控件用傳統的方法上傳?墒抢吓龅娇罩档那闆r,以至有很多文件沒有發送出去。查閱一些資料,現在是把所有路徑通過數據庫取到然后寫到一個js里。然后在前臺用js讀取這些路徑,通過xmlhttp來發送文件。
因為ie不太喜歡xmlHttp.總認為他有惡意行為.所以老談出提示警告.所以操作的時候不能使用web路徑.只能用物理路徑去訪問它.
然后服務端有一文件來接收這些編碼,并對其進行解碼.所以我稱之為"c/s". ^_^
目前很多代碼還在完善中.
簡單介紹一下:
aryFiles.push("c:\\aaa.zip") ;
aryFiles.push("c:\\bbb.exe") ;這里為文件路徑和文件.可為多個
以后這個路徑也可以通過file控件在客戶端取到
http://
www.xxx.com/xxx/xxx.asp這個是目的地,可以改為自己想要的地址.
ado_stream.LoadFromFile(server.mappath(".") &"/"& + str_filename)
server.mappath(".") &"/"& + str_filename 這里是讀取文件.
server.mappath(".") &"/"& 路徑和存放路徑一致
ado_stream.SaveToFile server.mappath(".") &"/"& str_filename,2
server.mappath(".") &"/"& 這個為存放文件的路徑. str_filename 為文件名這里讀取和存放都是放在程序所放目錄中.大家測試的時候也可以保持這樣即可把第一段代碼放到本地(eg:c:\upload.htm)
把第二段代碼放到服務器上,可以是本地服務器,可以是公網服務器.和上面的目的地保持一致
(eg:http://www.xxx.com/upload.asp or http:// localhost/www/upload.asp)
操作:找到第一段代碼保存的地方。執行即可(eg:打開c盤執行upload.htm)
目前程序還在調試過程中,希望大家提出寶貴意見客戶端代碼 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]服務端代碼 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]另外:此文的目的并不是說這個程序能給朋友們解決什么問題,主要目的還是為了和大家交流一些心得:
碰到問題->發現問題->解決問題.
希望大家都不要成為一個標準的代碼機器人。
多學、多看、多思考、多實踐。
沒有什么是不能解決的。