标签:
由于项目问题是基于web的,最近一直在改进web界面,由于产品需要升级,而且升级操作是由客户在web端完成,将软件包放在本地,由web上传到后台完成更新,之前做的是TFTP更新方式,但是需要借助第三方软件,TFTP服务器,最近在网页优化的过程中感觉太麻烦,于是改成在web直接上传的方式,不借助于第三方软件。效果图:
1、文件传输:post方式,不编码,用到HTML的file属性,代码:
(1)框架部分:
(2)JS部分:
此函数包括TFTP更新和WEB更新两种方式,代码截图有点重复。。。
(3)JS文件属性函数:
(4)JS完成上传:
其中四个监听函数从上到下分别为:进度条、上传完成、上传失败和取消上传;
(5)回调函数如下:
进度条:
(6)CGI接收:
回调函数:
3、如果只是单个文件上传(非压缩包方式),这样目的就达到了,但是当打开server1的时候会注意到比源文件多了五行:
即第一行至第四行(空行),还有最后一行,我单独写了一个脚本去掉这多余的五行:
解释:第一行的意义是去掉前四行,第二行是去掉最后一行;
这样目的虽然达到了,然而在传输大文件时出现了问题,提示:
同时网页也会提示:
错误信息是文件大小已经超出了boa默认接收数据的长度,(按理说当已GET方式发送数据时才会有数据大小的限制,POST没有,具体情况还有待查证!!!也希望知道的朋友告知,谢谢!!!)
于是,我找到boa源码,打开src/defines.h,更改如下:(boa默认数据大小为1M)
然后重新make,重启boa服务器!
4、待解决!!!!!
由于项目涉及的文件较多,如果改动较大,单个文件传,流程过于麻烦,于是以压缩包的方式传输,由于个人知识尚浅,目前还没有找到好的方法,实在不知道CGI怎么如何接收压缩包,纠结中。。。。
希望知道的大神指教一二,谢谢!!!
关于B/S模式CGI上传文件,遇到的问题归纳(待更新。。。)
标签:
原文地址:http://www.cnblogs.com/ys6738-4271-3931/p/5349929.html