本文共 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/