http协议传送文件的问题

using (var stream = Request.Files[0].InputStream)

 {

                MemoryStream ms = new MemoryStream();

                stream.CopyTo(ms);

                Bitmap bit = new Bitmap(ms);

                bit.Save(context.Request.PhysicalApplicationPath + "\\1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

                bit.Dispose();

}

不知道为什么你不行,ASP.net下应该都可以这样才对啊。

问题的关键是,你到底用在哪里?
asp.net 天生就可以,webfrom天生就可以,webapi天生就可以,owin天生就可以

ps:实际上这个不用自己解析,上面说的所有东西都使用了system.net.http 和http监听类,而这些东西本身就在http监听类里面天生就实现了

 

 static void Main(string[] args)

        {

            var s = @"Content-Type: multipart/form-data; boundary=---------------------------208301002832498

Content-Length: 10542

 

---------------------------208301002832498

Content-Disposition: form-data; name=""upLoad""; filename=""cre3.png""

Content-Type: image/png

 

PNG          

。。。。。。。。。。。。。。。。。。。

---------------------------208301002832498--";

            var b = Encoding.Default.GetBytes(s) //你实际接收到的就是 byte[],所以并不需要做字符串转字节数组

 

            var mask = "";

            var flag = false;

            var result = new List<string>();

            using (var ms = new MemoryStream(b))

            {

                var sr = new StreamReader(ms);

                while (!sr.EndOfStream)

                {

                    var r = sr.ReadLine();

                    if (mask == "")

                    {

                        var n = r.IndexOf("boundary=", 0);

                        if (n > 0) mask = r.Substring(n + "boundary=".Length);

                    }

                    else

                    {

                        if (r.Contains(mask))

                        {

                            flag = !flag;

                            continue;

                        }

                    }

                    if (flag)

                    {

                        if (r.Contains("Content-Disposition:"))

                        {

                            //解析出文件名

                            continue;

                        }

                        if (r.Contains("Content-Type:"))

                        {

                            //解析出文件类型

                            continue;

                        }

                        if (r == ""continue//跳过空行

                        result.Add(r);

                    }

                }

            }

            Console.WriteLine(string.Join("\r\n", result)); //由于是按行读,所以要补上可能丢失的回车换行符

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值