当前位置:编程学习 > C#/ASP.NET >>

c# 怎么上传压缩包(.zip类型的压缩文件)到服务器???

追问:上传到服务器端,压缩文件少两个字节,无法打开,请问这是什么原因呢?我现在是点击一个按钮,然后传特定的文件到服务器,不需要自己选择压缩文件,我现在是不知道怎么写上传过程的代码,有示例贴个,本人感激不尽!上面的代码如果是上传普通文件的话就可以正常上传,但是上传压缩文件的话,压缩包里面的文件会变的好大,也解压不出来,我在想是不是我读取压缩包流时候出错的,不知道怎么弄!
答案:上传文件可以用 WebClient 直接上传。

至于你的代码,则是因为你的代码提交方式和正常的表单数据不同。我也不知道你的服务器端代码是如何保存文件的。
正常情况下通过HTTP上传文件,提交的类型为 multipart/form-data,也就是Request的ContentType为:
multipart/form-data; boundary=分界符

分界符是一个唯一的随机字符串,用于分割各个表单数据。在请求正文中,以“--分界符”+换行标记作为每个内容的分隔符。

每个内容的表单项以“Content-Disposition: form-data; name="表单名"”开始,后跟一个空行,然后是要提交的内容;
每个文件是以“Content-Disposition: form-data; name="表单名"; filename="文件名"”行开始,后跟“Content-Type: application/octet-stream”,再跟一个空行,后面跟着要提交的文件数据。

因此你提交的数据结构完全不正确,要接收你提交的文件,服务器端保存代码必须特别写过。至于你服务器端代码我并不知道,所以不好测试。
其他:asp.net可以通过FileUpload控件可以实现上传
winForm可以通过OpenFileDialog控件实现 sharpzip可以打包压缩文件 

补充:
检查你的写入流代码,写的不对 WebClient类,简单易用。
 
WebClient clt = new WebClient();
clt.Credentials = new NetworkCredential("user", "pwd");//设置凭据
clt.UploadFile(@"ftp://xxx/1.txt", @"c:\1.txt");//上传c:\1.txt到ftp://xxx/1.txt

命名空间需引用:System.Net

上一个:C# 如图中的数据表格是哪个控件生成的。
下一个:怎么循环gridview获得其中数据,然后保存到数据库中

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,