Javascript 如何在ajax jquery中对文件上传进行排队? 财政司司长(一){ var formData=new formData(); files=$(“#upload”).get(0).files; append(“upfiles[]”,files[i]); $.ajax({ url:“upload.php”, 键入:“post”, 数据:formData, cache:false, processData:false, contentType:false, 成功:功能(数据){ 警报(“完成”); i++; } }
我想排队等待上传文件。在我上面的代码中,当第一个文件上传时,第二个文件处于挂起状态。但如果在选择文件后再次单击“上载”按钮,则第一个文件开始上传,第一个文件添加到上一次单击“上载”按钮时Javascript 如何在ajax jquery中对文件上传进行排队? 财政司司长(一){ var formData=new formData(); files=$(“#upload”).get(0).files; append(“upfiles[]”,files[i]); $.ajax({ url:“upload.php”, 键入:“post”, 数据:formData, cache:false, processData:false, contentType:false, 成功:功能(数据){ 警报(“完成”); i++; } },javascript,jquery,ajax,file-upload,Javascript,Jquery,Ajax,File Upload,我想排队等待上传文件。在我上面的代码中,当第一个文件上传时,第二个文件处于挂起状态。但如果在选择文件后再次单击“上载”按钮,则第一个文件开始上传,第一个文件添加到上一次单击“上载”按钮时 如何将ajax上传文件排队,或者换句话说,如何将下一个文件添加到当前ajax?我认为您想做什么: 用户选择4个文件进行上传 用户点击按钮 您希望对每个文件执行ajax调用,但它们不能重叠 如果是这样,那么您可以这样做: <script> funcupload(i) { var formData
如何将ajax上传文件排队,或者换句话说,如何将下一个文件添加到当前ajax?我认为您想做什么:
- 用户选择4个文件进行上传
- 用户点击按钮
- 您希望对每个文件执行ajax调用,但它们不能重叠
<script>
funcupload(i) {
var formData = new FormData();
files = $("#upload").get(0).files;
formData.append("upfiles[]", files[i]);
$.ajax({
url:"upload.php",
type: 'post',
data: formData,
cache: false,
processData: false,
contentType: false,
success:function(data) {
alert("Complete");
i++;
}
}
</script>
<input type=\"file\" id=\"upload\" name=\"upfiles[]\" multiple>
<input type=\"button\" value=\"Upload\" name=\"upload\" onclick=\"funcupload(0)\">
如果为空,您可以再次调用该函数。谢谢。但是,如果用户在上传pervious 4文件时选择了其他4个文件,则新文件将重叠在pervious 4文件上以供上传!@kelly我已更改代码以反映您的问题。
var filesToUpload = null;
var uploadNextFile(counter)
{
$.ajax({
url:"upload.php",
type: 'post',
data: files[i],
cache: false,
processData: false,
contentType: false,
success:function(data) {
if (counter < filesToUpload.length)
uploadNextFile(counter++);
else
filesToUpload = null;
}
}
}
filesToUpload.push(/*extra files*/);