博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http协议传送文件的问题
阅读量:4302 次
发布时间:2019-05-27

本文共 1476 字,大约阅读时间需要 4 分钟。

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)); //由于是按行读,所以要补上可能丢失的回车换行符

        }

转载地址:http://zwlws.baihongyu.com/

你可能感兴趣的文章
Eclipse-maven项目不将resources下的文件打到classpath下
查看>>
Linux-Centos安装JDK
查看>>
Maven-依赖调解/查看项目依赖了哪些包
查看>>
Maven-dependencyManagement与import
查看>>
SpringBoot-WebMvcAutoConfiguration/WebMvcConfigurer/WebMvcRegistrationsAdapter
查看>>
SpringMvc-ResponseBodyAdvice接口与@ControllerAdvice注解
查看>>
Spring-tx-PlatformTransactionManager(DataSourceTransactionManager)
查看>>
Spring-BeanDefinitionRegistry
查看>>
Spring-ClassPathBeanDefinitionScanner
查看>>
复制导致两台虚拟机ping不通
查看>>
打开chm文件,不显示文件内容的解决办法
查看>>
jvm基础知识一
查看>>
jvm基础知识二
查看>>
jvm基础知识三-----基本垃圾回收算法
查看>>
jvm基础知识四---垃圾回收面临的问题
查看>>
jvm基础知识五----分代垃圾回收详细
查看>>
jvm基础知识六---分代垃圾回收
查看>>
linux如何安装vmtools工具
查看>>
JAVA的内部类
查看>>
Java的匿名内部类
查看>>