首先,图片转化为字节流
public byte[] ImagefileToByte(string srcImagePath)
{
System.IO.MemoryStream m = new System.IO.MemoryStream();
System.Drawing.Bitmap bp = new System.Drawing.Bitmap(srcImagePath);
bp.Save(m,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] ImageByte = m.GetBuffer();
return ImageByte;
} 最外层调用的方法
public string postUploadImage(string ImagePath)
{
string fileName = System.IO.Path.GetFileName(ImagePath);
byte[] fileDatas = upImg.ImagefileToByte(ImagePath);
Stream stream = new MemoryStream(fileDatas);
string uploadImageResult = CreatePostHttpRespone(uploadImageUrl, stream, "application/octet-stream");
return uploadImageResult;
//uploadImageUrl=http://gw.api.alibaba.com/openapi/param2/1/aliexpress.open/api.uploadImage/自己店铺的appkey?fileName=aa.jpg&_aop_signature=签名
} public string CreatePostHttpRespone(string url,Stream stream,string contentType)
{
if (string.IsNullOrEmpty(url))
{
throw new ArgumentNullException("url");
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url) ;
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 = ;
byte[] tempBuffer = new byte[stream.Length];
stream.Read(tempBuffer, , tempBuffer.Length);
stream.Close(); //将内存流中的buffer写入到请求写入流
requestStream.Write(tempBuffer, , tempBuffer.Length);
requestStream.Close(); //获取到上传请求的响应
WebResponse response = request.GetResponse(); //获取到上传返回的数据
//string html = GetResponseString(response);
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
string content = reader.ReadToEnd();
response.Close();
request = null; return content;
} }
04-28 09:54