在项目中遇到多文件上传问题,用户一次选择多个文件,连同页面提交到服务器,有什么解决办法,或是思路!
我现在用ActiveX实现可以读取到客户端的文件名,怎么样才能提交到服务器呀?
谢谢大家了!~!~
------解决方案--------------------------------------------------------
the activeX :
System.Collections.Specialized.NameValueCollection PostVars=new System.Collections.Specialized.NameValueCollection();
PostVars.Add( "a ",val1);
PostVars.Add( "b ",val2);
the aspx:
UploadValues( "thepage.aspx ", "POST ",values);
------解决方案--------------------------------------------------------
我是这样做的:
(1)一个文件一个文件上传,而不是打包传。
(2)ActiveX中每读一个文件,然后就用Base64将文件内容转换为字符串,然后通过自定义事件将字符串传递到页面的javascript。
(3)页面javascript用Ajax方式传到后台进行保存。
(4)后台返回后,javascript再调用ActiveX自定义的一个方法,触发下一个文件的上传。
(5)ActiveX上显示进度条。
------解决方案--------------------------------------------------------
不知道你的ActiveX有什么能力呢?
当然最时髦的可以直接访问asp.net网站的webService。如果比较简单,也可以使用一个aspx页面来接收文件(由于是分块上传,支持http的get或者post方式都行)。
服务器端可以只接收一部分文件块,例如按照1K字节分为一块,服务的一个方法用于查询某一个文件的某块是否已经成功上传,另一个方法用于客户端调用它上传一个数据块。
当然,服务器端最好检验客户端的权限,不要让别有用心的人钻了你服务器的设计漏洞。