搞定上传(asp的和php的)
今天为一个网站做了上传功能。
原来一直很头疼文件的上传,非常难搞。所以这次我避实就虚,找了个jquery的uploadify插件,用到网站上传功能里,比较容易,也很酷。后台的文件保存我用了一小段php代码,优点是处理上传文件非常省心。最后搞定了一切。
然后就是wap的提交,也很快做好了。然后我想,既然网上的微博可以实现手机上传图片,为什么我的这个wap提交功能不能试一下呢?
就在wap表单里增加了input type=file的内容。手机果然支持。不过,剩下的就是提交的问题了。在这个wap网站上,我只能用asp实现上传。
首先,如果要把图片和其它字段一起提交,就需要用到"multipart/form-data"。
而如果用到"multipart/form-data",那么代码里就不可以再用request.form("field1")这样的形式了。网上说得很明确。
为了搞清楚在"multipart/form-data"状态下,到底是怎样提交数据的,我用了wexpert监听了上传的包,发现它是分了一段一段的样子,每个文件及field都是在自己的段里的,然后整个的数据包做为一个大的二进制包传给了后台。这样,要想分离出想要的文件及表单字段,就需要特殊处理了。
找了好几段代码,都不是很好用。有的出现乱码,有的能用但代码不严谨,不敢用。555,要是有人把上传的这些东西封装成一个类,简单调用就能出来所有结果,该有多好啊。
然后就找到了多少年来一直在眼前晃来晃去的upload_5xsoft.asp。
使用方法随便上网一查就有了:http://blog.csdn.net/minyifei811/article/details/1967353(upload_5xsoft使用方法)
最终代码如下:
-------index.htm--------
<FORM METHOD=POST enctype="multipart/form-data" ACTION="upload.asp">
<INPUT TYPE="file" NAME="filename1"><BR>
<INPUT TYPE="text" NAME="text1"><BR>
<INPUT TYPE="submit">
</FORM>
-------upload.asp--------
<!--#include file="upload_5xsoft.asp"-->
<%
set upload=new upload_5xsoft 'upload就是一个对象
set file=upload.file("filename1")
file.saveAs Server.mappath("/1.jpg")
response.write upload.Form("text1")
%>
一切都结束了。
总结:之所以原来不会使用upload_5xsoft,还是因为对multipart/form-data的背后的原理不明白,又不肯深入地去看。而今天晚上经历了多次反复和挫折,心里对想要的那个东西有了一种期待,而upload_5xsoft刚好就是我想要的。一看就明白,一试就成功。