图片上传
Re图片上传
.。。没找到啊。。。
-------------------------
Re图片上传
。。自己挖坑自己解决 希望大家多贴点c#代码
c#服务端上传图片
private static string HttpPostData(string url, string fileKeyName, string filePath, NameValueCollection stringDict)
{
string responseContent;
var memStream = new MemoryStream();
var webRequest = (HttpWebRequest)WebRequest.Create(url);
// 边界符
var boundary = '---------------' + DateTime.Now.Ticks.ToString('x');
// 边界符
var beginBoundary = Encoding.ASCII.GetBytes('--' + boundary + '\r\n');
var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
// 最后的结束符
var endBoundary = Encoding.ASCII.GetBytes('--' + boundary + '--\r\n');
// 设置属性
webRequest.Method = 'POST';
webRequest.ContentType = 'multipart/form-data; boundary=' + boundary;
// 写入文件
const string filePartHeader =
'Content-Disposition: form-data; name=\'{0}\'; filename=\'{1}\'\r\n' +
'Content-Type: application/octet-stream\r\n\r\n';
var header = string.Format(filePartHeader, fileKeyName, filePath);
var headerbytes = Encoding.UTF8.GetBytes(header);
memStream.Write(beginBoundary, 0, beginBoundary.Length);
memStream.Write(headerbytes, 0, headerbytes.Length);
var buffer = new byte[1024];
int bytesRead; // =0
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
memStream.Write(buffer, 0, bytesRead);
}
// 写入字符串的Key
var stringKeyHeader = '\r\n--' + boundary +
'\r\nContent-Disposition: form-data; name=\'{0}\'' +
'\r\n\r\n{1}\r\n';
foreach (byte[] formitembytes in from string key in stringDict.Keys
select string.Format(stringKeyHeader, key, stringDict[key])
into formitem
select Encoding.UTF8.GetBytes(formitem))
{
memStream.Write(formitembytes, 0, formitembytes.Length);
}
// 写入最后的结束边界符
memStream.Write(endBoundary, 0, endBoundary.Length);
webRequest.ContentLength = memStream.Length;
var requestStream = webRequest.GetRequestStream();
memStream.Position = 0;
var tempBuffer = new byte[memStream.Length];
memStream.Read(tempBuffer, 0, tempBuffer.Length);
memStream.Close();
requestStream.Write(tempBuffer, 0, tempBuffer.Length);
requestStream.Close();
var httpWebResponse = (HttpWebResponse)webRequest.GetResponse();
using (var httpStreamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.GetEncoding('utf-8')))
{
responseContent = httpStreamReader.ReadToEnd();
}
fileStream.Close();
httpWebResponse.Close();
webRequest.Abort();
return responseContent;
}
public static PostImage uploadImage(string filePath)
{
string url = 'https://oapi.dingtalk.com/media/upload?access_token=' + EnterpriseBusiness.GetToken().access_token + '&type=image';
NameValueCollection nvc = new NameValueCollection();
nvc['test'] = 'test.jpg';
var response = HttpPostData(url, 'media', filePath, nvc);
return JsonHelper.Deserialize(response);
}
赞0
踩0