参考链接:https://blog.csdn.net/qq_34611658/article/details/105530402
/// <summary>
/// 上传文件
/// </summary>
/// <param name="url"><服务器地址>
/// <param name="dic"></param>
/// <param name="filepath"><文件的本地储存地址>
/// <param name="filename"><文件的名字>
/// <returns></returns>
public static string PostJsonData(string url, Dictionary<string, string> dic, string filepath, string filename)
{
string str = "";
try
{
HttpClient client = new HttpClient();
var postContent = new MultipartFormDataContent();
string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
postContent.Headers.Add("unionId", UserInfo.UnionId);
postContent.Headers.Add("token", UserInfo.User_Token);
string filekeyname = "file";
postContent.Add(new ByteArrayContent(File.ReadAllBytes(filepath)), filekeyname, filename);
foreach (var key in dic.Keys)
{
postContent.Add(new StringContent(dic[key].ToString()), key);
}
HttpResponseMessage response = client.PostAsync(url, postContent).Result;
str = response.Content.ReadAsStringAsync().Result;
}
catch (Exception ex)
{
Debug.LogError("PostJsonData:" + ex.ToString());
}
return str;
}
调用
Dictionary<string, string> keyValues = new Dictionary<string, string>();
keyValues.Add("cert", cert);//cert是服务器返回的凭证 这里的凭证只是针对这个项目后端人员定义的
string result = PostJsonData(url, keyValues, path, filename);
下图是后端给的参数值:
添加:截屏上传至服务器