前几天帮朋友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 --------------------------
这样就井然有序,既确保的结构的清晰,又解决的大文件上传的问题。 |