程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 另類的文件上傳解決方案

另類的文件上傳解決方案

編輯:關於ASP編程

編寫思路:把本地文件在客戶端通過base64編碼以後發送目的地.
測試過程中,上傳文件過大,導致超時不成功.
後來經過改善.把編碼分段發送.測試20M成功

編寫目的:在傳統的解決方案裡面,一次一次選取上傳可以.但是在碰到把數據庫裡文件路徑讀出來,並把這些文件上傳到一個地方的時候就比較麻煩.
如果得到路徑一個一個去找到用ftp當然也是可以的,但每次找這些文件我看都會比較費時。這裡編寫這個主要就是為了通過數據庫裡的文件路徑取得文件.把文件一次批量上傳到一個地方.
其主要目的還是為了鍛煉一下自己.

解決過程:起初試著用模擬鍵盤輸入強行賦值給file控件用傳統的方法上傳。可是老碰到空值的情況,以至有很多文件沒有發送出去。查閱一些資料,現在是把所有路徑通過數據庫取到然後寫到一個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 全選 注:如需引入外部Js需刷新才能執行]

服務器端


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved