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

对方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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,