使用ajax传 既有字符串类型,又有文件类型的的参数
html
<div>
<form>
<input type="text" id="text">
<input tyoe="file" onchange="addImg(this)">
<img id="img-show" src="" alt="图片缩略图">
<button type="button" onclick="btn()">确定保存</button>
</form>
</div>
js
var formDta = new FormData();
function addImg(file){
var file = file.files[0];// 这是规定的获取添加的文件的方式
console.log(file);
var reader = new FileReader();读取文件信息
formData.append("diploma_image[]",file);// 将添加的图片存到数组形式的属性中”diploma_image[]“,可以存多张图片
reader.readAsDataURL(file);
reader.onload = function(e){
$("#img-show).attr("src",this.result); // 图片回显
}
}
function btn(){ // 使用jQuery中的ajax发送请求
var text = $("#text").val();
formData.append("text":text); // 存储text
$.ajax({
url: ‘放请求的路径’,
type: "post",
processData: false, //jquery 是否对数据进行 预处理
contentType: false, // 不要自己修改请求内容类型,
data: formData,
dataType:'json',
success: function(res,status,xhr){
if(res.code != 0){
alert(res.msg);
}else{
alert("添加成功!");
//window.location.href = router_question_list_theory_url;
}
}
})
}
注意:
- processData: false, //jquery 是否对数据进行 预处理
contentType: false, // 不要自己修改请求内容类型,
这两句是必须要添加,否则传过去的数据会被处理 - 必须实例化一个FormData对象来存储要传的参数