Javascript 用PHP实现Ajax POST格式

Javascript 用PHP实现Ajax POST格式,javascript,php,ajax,post,Javascript,Php,Ajax,Post,我有一个表单,我想在里面有一个“虚拟表单”,处理文件附件。我有一个文件输入和一个发送文件的按钮 问题是,我的PHP支持只获得POST,并且具有以下结构: "file"; filename="xxx.jpg" Content-type: image/jpeg . . . 其中点表示文件中的二进制数据 从我读到的内容来看,应该是$\u文件和$\u POST变量,但我没有得到它们 以下是HTML和Javascript中的相关代码行: <input type="file" id="file-t

我有一个表单,我想在里面有一个“虚拟表单”,处理文件附件。我有一个文件输入和一个发送文件的按钮

问题是,我的PHP支持只获得POST,并且具有以下结构:

"file"; filename="xxx.jpg"
Content-type: image/jpeg

.
.
.
其中点表示文件中的二进制数据

从我读到的内容来看,应该是
$\u文件
$\u POST
变量,但我没有得到它们

以下是HTML和Javascript中的相关代码行:

<input type="file" id="file-to-append" name="file-attachment">
<input type="button" onClick="append_file()" value="Add file">

function append_file() {
var formData = new FormData();


console.log(jQuery('#file-to-append'));
  formData.append('file', jQuery(":file")[0].files[0]);

  jQuery.ajax({
       url : 'file_upload.php',
       type : 'POST',
       data : formData,
       processData: false,
       success : function(data) {
           console.log(data);
           alert("Added");
       }
  });
}

函数append_file(){
var formData=new formData();
log(jQuery(“#要追加的文件”);
formData.append('file',jQuery('file')[0].files[0]);
jQuery.ajax({
url:'file_upload.php',
键入:“POST”,
数据:formData,
processData:false,
成功:功能(数据){
控制台日志(数据);
警告(“添加”);
}
});
}

有人能发现或知道问题所在吗?

在表单中使用正确的加密

<form id="data" enctype="multipart/form-data" method="post" >
<input type="submit"  value="Add file">
</form>

数据正确传递,因此Ajax调用没有问题

您可以使用超级全局
$\u文件
在PHP中获取文件对象

在您的情况下,您可以像这样使用它:

$file = $_FILES['file'];
echo $file['name'];
echo $file['tmp_name'];
.
.
.
要查看
$\u文件
数组,您可以:

echo "<pre>";
print_r($_FILES);
echo "</pre>";
echo”“;
打印(美元文件);
回声“;

事情变得越来越奇怪了。我在IE 11上通过设置contentType使其工作,但在Chrome上设置为“multipart/form data”,在该设置下根本不起作用

我尝试过contentType:false,但它在两种平台上都不起作用,尽管它应该是正确的做法(TM):/

我还在外部表单中添加了enctype设置,但我想知道它有什么帮助,因为我不是提交(整个表单),而是在主表单(我自己处理)的“内部”添加内容。显然这也没用

这应该不是一个问题,但出于某种原因,我一直使用这个ajax实现,尽管我很久以前就使用了文件上传(两位数)


hank

我打赌你的
表单
标签中没有
enctype
属性。发布你的完整表单..enctype在这种情况下不重要,请添加你的PHP代码以及PHP代码。目前只打印$\u post和$\u文件。我知道当这些给出正确的值时该怎么做。(实际上是文件内容,因为这是一个“后端调用”)
echo "<pre>";
print_r($_FILES);
echo "</pre>";