目录导航:
前言:
什么是multipart/form-data请求:
Html上传图片按钮:
使用ajax将图片文件流和相关参数传递到后端进行拼接:
后端接收图片和参数,并将图片文件流转化为图片字节类型数据:
重点,HttpClient拼接multipart/form-data形式参数post提交数据:
使用Fiddler 4 抓包查看请求的参数:
总结:
文章正文:
回到顶部
前言:
本次要讲的是使用.Net HttpClient拼接multipark/form-data形式post上传文件和相关参数,并接收到上传文件成功后返回过来的结果(图片地址,和是否成功)。可能有很多人会说用ajax不是就可以轻松的实现吗?的确是在不存在跨域问题的前提下使用ajax上传文件,接收返回结果是最佳的选择。无奈的是我们对接的是第三方的一个上传图片的接口,而且对方并没有对我们的域名设置允许跨域,为了能够解决这一问题我们只能够通过后端请求避免跨域问题。
回到顶部
什么是multipart/form-data请求:
关于multipart/form-data详情查看: https://www.cnblogs.com/tylerdonet/p/5722858.html
回到顶部
Html上传图片按钮:
<div class="cover-hd">
<a href="javascript:;" class="a-uploadCustom">
<input type="file" id="Logoimg" onchange="OnchangeImage(this)" /></a>
</div>
回到顶部
使用ajax将图片文件流和相关参数传递到后端进行拼接:
注意:因为我这里调用第三方接口需要传递(appid应用程序唯一标识,random随机数,和sign签名)
复制代码
<script type="text/javascript">
//后端图片上传
function OnchangeImage(obj) {
var formData = new FormData();
var files = $(obj).prop('files'); //获取到文件列表
console.log(files[0]);
formData.append("imgType", 1);
formData.append("appId","你需要传递的参数");
formData.append("random", "你需要传递的参数");
formData.append("file", files[0]);//图片文件流
formData.append("sign", "你需要传递的参数");
console.log(formData);
jQuery.support.cors = true;
$.ajax({
async: true,
contentType: false, //头部请求内容格式
dataType: 'json',
type: 'post',
data:formData,
.Net使用HttpClient以multipart/form-data形式post上传文件及其相关参数
最新推荐文章于 2025-06-14 16:35:19 发布