62,046
社区成员
发帖
与我相关
我的任务
分享
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] buff = ms.ToArray();
System.Drawing.Image.FromStream(buff).Save(......)//这样写是不对的哦
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] buff = ms.ToArray();
System.Drawing.Image.FromStream(ms).Save(......) //这样写没有语法错误,保存到本地可以,但是保存到服务器不行;
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] buff = ms.ToArray();
System.Drawing.Image.FromStream.Save(......)(buff)
//这样写是不对的哦
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] buff = ms.ToArray();
System.Drawing.Image.FromStream(ms).Save(......)
//这样写没有语法错误,保存到本地可以,但是保存到服务器不行;Image.FromStream(.....)
方法从这个二进制数组来产生图片,或者直接把数据保存到文件。
public string WebMethodPostData(string urlPrefix, byte[] imageByte, string contentType)
{
var stream = new MemoryStream(imageByte);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlPrefix);
request.Timeout = requestTimeOut;
try
{
request.Method = "POST";
request.Accept = "*/*";
request.KeepAlive = true;
request.ContentType = contentType;
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.ContentLength = stream.Length;
using (Stream requestStream = request.GetRequestStream())
{
//将内存流数据读取位置归零
stream.Position = 0;
byte[] tempBuffer = new byte[stream.Length];
stream.Read(tempBuffer, 0, tempBuffer.Length);
stream.Close();
//将内存流中的buffer写入到请求写入流
requestStream.Write(tempBuffer, 0, tempBuffer.Length);
requestStream.Close();
//获取到上传请求的响应
WebResponse response = request.GetResponse();
//获取到上传返回的数据
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
string content = reader.ReadToEnd();
response.Close();
request = null;
return content;
}
}
finally
{
if (request != null)
{
//中止请求
request.Abort();
}
//需要写下Null
request = null;
//强制垃圾回收,并释放资源
System.GC.Collect();
}
}