javascript - 使用 Ajax 将 FileList 发送到 PHP 脚本

标签 javascript php jquery ajax

我正在尝试使用 JS 发送数组文件。我的代码:

var formData = new FormData();
formData.append("files", files);

$.ajax({
    url: './upload.php',
    method: 'post',
    data: formData,
    processData: false,
    contentType: false,
success: function(response) {
  alert('Files uploaded successfully. ');
  console.log(response);
},
error: function(jqXHR, textStatus, errorThrown) {
   console.log(textStatus, errorThrown);
}

});

在此图像中,您可以看到来自 php https://beta.ctrlv.cz/mUwx 的响应(红色)您还可以看到文件数组数据。我的 php 代码是:

<?php
    echo $_POST['files'][0]["name"];
?>

我想使用php脚本进行上传,但是ajax没有发送文件数组,这对于上传很重要。

最佳答案

这是我找到的答案:

var data = new FormData();
jQuery.each(jQuery('#file')[0].files, function(i, file) {
    data.append('file-'+i, file);
});

现在您有了一个 FormData 对象,可以与 XMLHttpRequest 一起发送。

jQuery.ajax({
    url: 'php/upload.php',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});

来源:https://stackoverflow.com/a/5976031/7282094

希望有所帮助。

关于javascript - 使用 Ajax 将 FileList 发送到 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44087239/

相关文章:

jquery - 为什么 Flexslider 方向按钮不​​显示?

javascript - 我的 jquery 运行时未加载 Squarespace 表单(在 IE 中)

javascript - 将输入更改为大写

javascript - Bootgrid 读取 JSON 格式的返回值

javascript - jQuery如何检查一个div的当前位置是否等于

php - 如何使用 php 和 ajax 设置倒计时?

php - 在 Symfony2 中使用自定义身份验证提供程序

javascript - 为什么 require 和 fs.existSsync 使用不同的相对路径

php - MySQL select 语句无法正常工作

php - 根据从用户收到的输入更新数据库字段