编程语言
首页 > 编程语言> > php – 使用AJAX的文本内容和FileUpload

php – 使用AJAX的文本内容和FileUpload

作者:互联网

我正在为我的公司编写客户端数据库系统.没有太多花哨的东西,但它做到了它应该做的事情.
现在所有基本的“文本”内容都已完成,我想在其中添加一些文件管理.

我有几种形式可以使用ajax发送到后端,然后写入模型中的db.

其中一些表格计划上传文档文件.

有没有办法处理正常值提交和使用AJAX提交文件?

我来给你一个表格示例:

<form action="SOMEPATH/LOGIC_FILE.php" action="POST" enctype= multipart/form-data>
  <label for="name">
   <input type="text" id="name" name="name" />
  </label>
  <label for="somethingElse">
   <input type="text" id="somethingElse" name="somethingElse" />
  </label>
  <label for="fileUpload">
    <input type="file" />
  </label>
</form>

AJAX示例:

var name = $('#name').val();
var somethingElse = $('#somethingElse').val();

var dataArr = { 'name':name, 'somethingElse':somethingElse};
MYELEMENT.click(function(e){
e.preventEventDefault();
$.ajax({
            url: "PATH/logic/logic_update_client_allg.php",
            type: "POST",
            data: allgArray,
            success: function(dataArr){
                // works
            },
            error: function(){
                // doesnt work
            }
        });
}

这就是我如何处理我的INPUT VALUE提交

如何继续使用此表单上传文件

谢谢

解决方法:

对于ajax上传,您需要使用jQuery.ajax()方法中已有的xmlHttpRequest,但使用FormData.

如果您不是针对IE旧版本,例如7,8,则可以使用FormData.有一点需要注意,您必须将contentType,processData设置为false.

请参阅以下示例:

var name = $('#name').val();
var somethingElse = $('#somethingElse').val();
var fd = new FormData();
var dataArr = {
  name: name,
  somethingElse: somethingElse,
  file : fd.append('file', $('#fileUpload').get(0).files[0]) // put the file here
};

MYELEMENT.click(function(e) {
  e.preventDefault();
  $.ajax({
    url: "PATH/logic/logic_update_client_allg.php",
    type: "POST",
    data: dataArr, //<----post here the files and other values
    processData: false,  // tell jQuery not to process the data
    contentType: false   // tell jQuery not to set contentType
    success: function(dataArr) {
      // works
    },
    error: function() {
      // doesnt work
    }
  });
});

标签:jquery,php,ajax,asyncfileupload
来源: https://codeday.me/bug/20190609/1204844.html