码迷,mamicode.com
首页 > Web开发 > 详细

关于B/S模式CGI上传文件,遇到的问题归纳(待更新。。。)

时间:2016-04-03 15:58:22      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

    由于项目问题是基于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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!