上傳|演算法|無組件 前幾天幫朋友faintbear修改一個“asp無組件上傳”的代碼,得了幾點心得,寫在此處,或許還有點用處。
我沒有開發過asp程式,只是臨時報佛腳,修改了一下控制語句,所以,這裡不再給出asp代碼,只是說明一下思路。(你最好在看這篇文章前先瀏覽一下faintbear的《asp無組件上傳的原理 (轉) 》這篇文章,重複的部分我不再敘述了)
大體是這樣的,一個form表單中可能post多個文本,居各簡單的例子:
<form method="post" action="upload.asp" enctype="multipart/form-data">
<label>
<input type="file" name="file1" />
</label>
<br />
<input type="text" name="id" value="234523894"/>
<br />
<input type="text" name="name" value="Faint Bear"/>
<br />
<input type="text" name="friend" value="Smile Once"/>
<br />
<input type="submit" value="Submit"/>
<input type="reset" value="Reset"/>
</form>
-----------------------------7d429871607fe
Content-Disposition: form-data; name="file1"; filename="G:\homepage.txt"
Content-Type: text/plain
寶玉:http://www.webuc.net
-----------------------------7d429871607fe
Content-Disposition: form-data; name="id"
234523894
-----------------------------7d429871607fe--
Content-Disposition: form-data; name="name"
Faint Bear
-----------------------------7d429871607fe--
Content-Disposition: form-data; name="friend"
Smile Once
-----------------------------7d429871607fe--
由於file1可能非常大,而諸如id、name、friend這些要提交的域又非常多,而且file1、id、name、friend的相對位置又不確定(原文中是把這些條目的順序寫死的),如何才能更好的劃分流的塊呢?
我的思路是:首先按條目來劃分塊,就是file1、id、name、friend各一塊;之後,如果是file類型的,再根據其大小細分成若干塊。基本上是這樣的結構:
--------------------------
file1 ------------
No.1 block
------------
No.2 block
------------
No. ..... .. block
------------
--------------------------
id
--------------------------
name
--------------------------
friend
--------------------------
這樣就井然有序,既確保的結構的清晰,又解決的大檔案上傳的問題。