C#上传图片至Springboot服务器
程序员文章站
2022-05-09 11:18:13
...
C#上传图片至Springboot服务器
C#端代码
public void upload(Stream stream) {
//流转byte[]
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);
System.Diagnostics.Debug.WriteLine("准备上传图片:" + bytes.Length);
string data = "";
int j = 0;
for (int i = 0; i < bytes.Length; i++)
{
data += bytes[i] + ";";
j++;
}
//通讯
string res = HttpUtils.HttpPost(LoginPage.CurrentPage.Model.DomainName + "/v2/service/dwServiceUser/serviceUpload", "{\"bytes\":\"" + data + "\",\"bindId\":\"" + Model.BindId + "\",\"userId\":\"" + Model.UserId + "\"}", null);
}
/// <summary>
/// 指定Post地址使用Get 方式获取全部字符串
/// </summary>
/// <param name="url">请求后台地址</param>
/// <param name="content">Post提交数据内容(utf-8编码的)</param>
/// <returns></returns>
public static string HttpPost(string url, string content, string token)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
if (token != null)
{
SetHeaderValue(req.Headers, "X-dw-Token", token);
}
req.Method = "POST";
req.ContentType = "application/json";
#region 添加Post 参数
byte[] data = Encoding.UTF8.GetBytes(content);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
//添加请求头信息
private static void SetHeaderValue(WebHeaderCollection header, string name, string value)
{
var property = typeof(WebHeaderCollection).GetProperty("InnerCollection", BindingFlags.Instance | BindingFlags.NonPublic);
if (property != null)
{
var collection = property.GetValue(header, null) as NameValueCollection;
collection[name] = value;
}
}
JAVA端代码
/**
* 上传图片
*
* @return
*/
@PostMapping("/serviceUpload")
@PassToken
public AjaxResult serviceUpload(@RequestBody String str) throws Exception {
JSONObject jsonObject = JSONObject.parseObject(str);
Object bytes = jsonObject.get("bytes");
String[] split = bytes.toString().split(";");
byte[] aa = new byte[split.length];
for (int i = 0; i < split.length; i++) {
if (!com.tz.common.utils.StringUtils.isBlank(split[i])) {
if (Integer.parseInt(split[i]) >= 128) {
aa[i] = Byte.parseByte(Integer.parseInt(split[i]) - 256 + "");
} else {
aa[i] = Byte.parseByte(Integer.parseInt(split[i]) + "");
}
}
}
//上传至阿里云oss
String shareCodeUrl = OSSFactory.build().upload(aa, "serviceUpload/image/" + UUID.randomUUID() + ".jpg", "image/jpg");
return success().data(shareCodeUrl);
}
下一篇: c# .net 上传图片到服务器