在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据。

阳光明媚

我已经研究了很多与此主题相关的帖子,因此请不要将其标记为重复,因为没有提供直接答案。但是,如果您真的相信我可能错过了某些东西,它提供了跨浏览器支持(也支持IE8 +),请指明哪一个,然后将其标记为重复。

我想使用JQuery AJAX发布文件和一些文本数据,并使用$_FILES在服务器端的PHP中访问该信息$_POST我无需AJAX就可以做到。问题是当我开始使用AJAX时。

这是一个简单的示例:

HTML:

  <form id="upload_form" method="POST" enctype="multipart/form-data">
       <input type="text"/>
       <input type="file"/>
       <button type="submit">Submit</button>
  </form>

JAVASCRIPT:

   var ser_data = $('#upload_form').serialize();

 ...on submit... {
 ...
   upload_promise = $.ajax({
    url: 'upload1.php',  
    dataType: 'html',
    type: 'POST',
    data: ser_data,
   });
 ...
  }

好吧,我们都知道,这.serialize只会序列化输入的文本字段,而JS等无法读取文件。在这里,我不做任何花哨的事情。我只需要一种机制,可以在服务器端使用PHP$_FILES$_POST在客户端输入文件名和文本数据。实际的表单具有更多的字段(更多的文件和文本类型),但这是问题的症结所在。

去反感

要通过ajax发送文件和发布数据,应使用FormData对象。

https://developer.mozilla.org/docs/XMLHttpRequest/FormData

var fd = new FormData();

var myFileInput = $(" ... "); //adapt to access your file input
var files = myFileInput[0].files ;

// The loop is there to handle file inputs with multiple files
for(var i = 0, c = files.length ; i<c ; i++){
    var blob = new Blob(files[i]);
    var fileAccessName = "myFiles_"+i ; 
    fd.append(fileAccessName, blob, files[i].name);
}

// You can also send simple data along your files
fd.append('otherData', $("...").val());


$.ajax({
    url: ... , //the form's target
    data: fd,
    processData: false,
    type: 'POST',
    success: function(rep){
        // ...
    }
}
// since we are sending the form trough jQuery, you should also add a ev.preventDefault() to your .submit(function(ev){}) callback

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据。

来自分类Dev

jQuery ajax post不将数据发送到服务器端(使用PHP)

来自分类Dev

jQuery ajax post不将数据发送到服务器端(使用PHP)

来自分类Dev

PHP/JQuery/AJAX 表单 - 仅使用内联错误样式进行服务器端验证

来自分类Dev

使用jQuery通过php连接到服务器端SQL数据库

来自分类Dev

如何从服务器端的jQuery Ajax检索“数据”?

来自分类Dev

为什么文本渲染比带有服务器端渲染的图像慢?

来自分类Dev

Datatable jQuery + Ajax + PHP无法获取表中的数据(服务器端处理)

来自分类Dev

Highcharts服务器端导出带有数据标签的Pie(phantomjs)

来自分类Dev

Highcharts服务器端导出带有数据标签的Pie(phantomjs)

来自分类Dev

使用jQuery将变量保存到文本文件服务器端

来自分类Dev

jQuery数据表-无法使用PHP访问服务器端自定义参数,fnServerParams,POST方法

来自分类Dev

使用ajax发送数据,来自服务器端PHP的空白响应

来自分类Dev

使用Ajax在服务器端php文件中捕获onClick事件

来自分类Dev

使用AJAX和PHP创建服务器端文件的实时搜索

来自分类Dev

jQuery / Ajax表单-服务器端php却收到跨域警告

来自分类Dev

jQuery Ajax不调用服务器端功能

来自分类Dev

服务器端的jQuery多种数据解码

来自分类Dev

服务器端的AJAX帖子为空(PHP)

来自分类Dev

使用Jquery Ajax将html字符串传递到服务器端

来自分类Dev

我使用jquery / ajax登录。发送作品,服务器端返回登录,但是失败

来自分类Dev

如何使用 Jquery 在 Ajax 调用中调用 Mvc 服务器端验证

来自分类Dev

如何使用Flask处理从jquery数据表发送的服务器端参数?

来自分类Dev

使用Ajax和无限滚动进行服务器端(PHP)过滤和排序

来自分类Dev

PHP服务器端处理是否计入“移动数据使用量”

来自分类Dev

使用REST在服务器端保存数据

来自分类Dev

使用异步数据获取的服务器端渲染

来自分类Dev

使用哪个,会话,Cookie,服务器端数据?

来自分类Dev

从服务器端使用 Laravel/Lumen 插入数据

Related 相关文章

  1. 1

    在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据。

  2. 2

    jQuery ajax post不将数据发送到服务器端(使用PHP)

  3. 3

    jQuery ajax post不将数据发送到服务器端(使用PHP)

  4. 4

    PHP/JQuery/AJAX 表单 - 仅使用内联错误样式进行服务器端验证

  5. 5

    使用jQuery通过php连接到服务器端SQL数据库

  6. 6

    如何从服务器端的jQuery Ajax检索“数据”?

  7. 7

    为什么文本渲染比带有服务器端渲染的图像慢?

  8. 8

    Datatable jQuery + Ajax + PHP无法获取表中的数据(服务器端处理)

  9. 9

    Highcharts服务器端导出带有数据标签的Pie(phantomjs)

  10. 10

    Highcharts服务器端导出带有数据标签的Pie(phantomjs)

  11. 11

    使用jQuery将变量保存到文本文件服务器端

  12. 12

    jQuery数据表-无法使用PHP访问服务器端自定义参数,fnServerParams,POST方法

  13. 13

    使用ajax发送数据,来自服务器端PHP的空白响应

  14. 14

    使用Ajax在服务器端php文件中捕获onClick事件

  15. 15

    使用AJAX和PHP创建服务器端文件的实时搜索

  16. 16

    jQuery / Ajax表单-服务器端php却收到跨域警告

  17. 17

    jQuery Ajax不调用服务器端功能

  18. 18

    服务器端的jQuery多种数据解码

  19. 19

    服务器端的AJAX帖子为空(PHP)

  20. 20

    使用Jquery Ajax将html字符串传递到服务器端

  21. 21

    我使用jquery / ajax登录。发送作品,服务器端返回登录,但是失败

  22. 22

    如何使用 Jquery 在 Ajax 调用中调用 Mvc 服务器端验证

  23. 23

    如何使用Flask处理从jquery数据表发送的服务器端参数?

  24. 24

    使用Ajax和无限滚动进行服务器端(PHP)过滤和排序

  25. 25

    PHP服务器端处理是否计入“移动数据使用量”

  26. 26

    使用REST在服务器端保存数据

  27. 27

    使用异步数据获取的服务器端渲染

  28. 28

    使用哪个,会话,Cookie,服务器端数据?

  29. 29

    从服务器端使用 Laravel/Lumen 插入数据

热门标签

归档