江湖救急!
上传多个文件,传参失败。
var formdata = new FormData($("#uploadForm")[0]);
视图:
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" name="file" multiple="multiple" />
</form>
<button id="btnUpload">上传文件</button>
脚本:
<script>
$("#btnUpload").on("click", function () {
var formdata = new FormData($("#uploadForm")[0]);
alert(formdata);
$.ajax({
type: "post",
url: "/Attendance/UploadFile2/",//url地址
contentType: false,
cache: false,
processData: false,
data: formdata,
success: function (data) {
console.log(data);
}
});
});
</script>
控制器:
files.Count 为0
我用你的代码测试是可以的
将formdata改用下面的方式试下
var formdata = new FormData();
var files = $("input[type='file']")[0].files;
for (var i = 0; i < files.length; i++) {
formdata.append("file", files[i]);
}
谢谢
你js写的有问题,在百度一下吧,要 设置 异步为false
能具体点吗,大佬
$("#but_upload").click(function(){
var fd = new FormData();
var files = $('#file')[0].files;
// Check file selected or not
if(files.length > 0 ){
fd.append('file',files[0]);
$.ajax({
url: 'upload.php',
type: 'post',
data: fd,
contentType: false,
processData: false,
success: function(response){
if(response != 0){
$("#img").attr("src",response);
$(".preview img").show(); // Display image element
}else{
alert('file not uploaded');
}
},
});
}else{
alert("Please select a file.");
}
});
有不少地方要調,你對著範例代碼調調
嗯嗯
你咋还没成功呢0 0
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<img src="空图片连接" width="80" height="80" style="margin-left: 20px" id="id_img">
<!--<input type="file" name="file" id="uploadForm" multiple="multiple" />-->多个文件
<input type="file" name="file" id="uploadForm">
<button id="btnUpload">up</button>
<script>
$("#btnUpload").on("click", function () {
var formData = new FormData();
//获取要上传多个文件
//let file = $("#uploadForm");
//for (let w = 0; w < file.length; w++) {
// formData.append("files[]", file[w]);
//}
formData.append('file', $("#uploadForm")[0].files[0]); //添加图片信息的参数
formData.append('sizeid', 123); //添加其他参数,相当于字典里面的key,value,看你业务
$.ajax({
url: '/Attendance/UploadFile2/',
type: 'post',
secureuri: false, ////是否启用安全提交,默认为false。
cache: false, //上传文件不需要缓存
data: formData,
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
success: function (data) {
alert(" 上传成功");
},
error: function (data) {
alert("上传失败");
}
})
})
</script>
//这个你可以看看要不要加,可以学习一下
<script>
//当该控件发生变化,响应该事件
$("#uploadForm").change(function () {
//alert(1)
//取到文件对象
var file = $("#uploadForm")[0].files[0]
//放到img控件上,借助于filereader 中间的东西,文件阅读器
//生成一个文件阅读器对象赋值给filereader
var filereader = new FileReader()
//把文件读到filereader对象中
//读文件需要时间,需要文件读完再去操作img
//如果没这一步操作下面不一定变化
filereader.readAsDataURL(file)
filereader.onload = function () {
$("#id_img").attr('src', filereader.result)
}
})
</script>
谢谢