对方post过来的zip文件,接收端如何处理
对方是一个工具,能通过post方式发文件到我这边,我来接收并保存该文件。目前查到的帮助一般都是post xml数据(不是文件),有这方面经验的大侠是否能给些建议。下面是一些代码,保存文件时要求是byte类型(单字节类型),但是从Request得到的是char类型(unicode类型),转换还存在问题。
try
{
Stream receiveStream = Request.InputStream;
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader(receiveStream, encode);
FileStream streamWriter = File.Create(file);
int size = 256;
Char[] read = new Char[256];
byte[] data = new byte[256];
int count = readStream.Read(read, 0, size);
while (count > 0)
{
for (int i = 0; i < read.Length; i++)
{
data[i] = Convert.ToByte(read[i]);//这里容易出错,如果是汉字就会报错:值对于无符号的字节太大或太小
}
streamWriter.Write(data, 0, count);
count = readStream.Read(read, 0, size);
}
readStream.Close();
streamWriter.Close();
Response.Write("OK!");
}
catch (Exception ex)
{
String s = ex.Message.ToString();
Response.Write(s);
}
--------------------编程问答-------------------- 不是接收的是zip格式么? --------------------编程问答-------------------- POST过来的是XML。。
这样行不 在POST之前序列化为byte 接收的时候在反序列化
这样能不能得到。 --------------------编程问答-------------------- http://space.itpub.net/47598/viewspace-23176 --------------------编程问答-------------------- 如果post的就是zip而已,
这里不需要转换吧:
data[i] = Convert.ToByte(read[i]);
直接改成 data[i]=read[i];
或者后面直接写入 read[i]的内容就行了
zip格式是二进制数据
如果是附件形式,用这个:
if (Request.Files.Count>0)
{
HttpPostedFile f = Request.Files[0];
f.SaveAs(Server.MapPath("002.jpg"));
}
--------------------编程问答-------------------- 你接收到的就是Stream,你管它什么编码,直接Write就得了...干嘛要当字符流用StreamReader读?
不是自己给自己找事儿吗...
补充:.NET技术 , ASP.NET