试图通过AJAX和PHP将文件从HTML表单上传到服务器?

时间:2016-06-27 18:55:42

标签: javascript php jquery ajax

我已经研究过很多关于此事的帖子,但我仍然遇到麻烦,这就是为什么我决定发布一个问题的原因。

我有一个带文件输入的html表单:

<form id='AddFile' action='AddFile.php' method='post' enctype='multipart/form-data'>

    <input type='file' id='fileAdd' name='fileAdd'>

    Friendly Name: <input type='text' id='friendlyname-Add'>

</form>

我有一些JavaScript准备上传文件:

var form = $('AddFile')[0];
var formData = new FormData(form);

$.ajax({

      url: "AddFile.php",
      type: 'POST',
      data: formData,
      cache: false,
      dataType: 'json',
      contentType: false,
      processData: false,
      success: function(data){

          alert("file uploaded!");

     ...

和处理数据的PHP:

<?php

$uploaddir = 'path';
$uploadfile = $uploaddir . basename($_FILES['fileAdd']['name']);
echo $uploadfile;

if (move_uploaded_file($_FILES['fileAdd']['tmp_name'], $uploadfile)) {

    ...

}else{

...

}

?>

1 个答案:

答案 0 :(得分:0)

错字:

var form = $('AddFile')[0];
              ^---no #

没有#.,jquery正在寻找一个显然不存在的<AddFile>标记。

如果您对PHP代码进行了最小的错误处理,那么您已经看到没有执行任何上传。 $ _FILES中有一个['error']参数,原因如下:

if($_FILES['fileAdd']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['fileAdd']['error']);
}