如何上传.txt文件表格?

时间:2016-11-07 11:25:50

标签: javascript php ajax

这是我的代码:

HTML:

<form id="form_id" action="#" accept-charset="UTF-8" enctype="multipart/form-data">
    <div>
        <label for="files" class="drop-files-container">drag here</label>
        <input id="files" type="file" name="file[]" style="visibility:hidden;">
    </div>
</form>

JavaScript的:

$('#files').on('change',function() {
    var files = $(this)[0].files;
    processFileUpload(files);
    return false;
});

function processFileUpload(droppedFiles) {
    var uploadFormData = new FormData($("#form_id")[0]);
    if(droppedFiles.length > 0) {
        for(var f = 0; f < droppedFiles.length; f++) {
            uploadFormData.append("file",droppedFiles[f]);
        }
    }
    $.ajax({
        url : "compareList.php",
        type : "POST",
        data : uploadFormData,
        contentType: "application/x-www-form-urlencoded;charset=utf-8",
        cache : false,
        contentType : false,
        processData : false,
        dataType : "json",
        success : function(data) {
            console.log(data);
        }
    });
}

PHP:

$arr = array();
$file = $_FILES['file'];
$handle = fopen($file, "r");

header('HTTP/1.1 500 Internal Server Booboo');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode(array('message' => 'ERROR', 'code' => 1337)));

我的代码返回:

  

警告:fopen()要求参数1为有效路径,在 C:\ xampp \ htdocs \ comparelist_php \ compareList.php 中的行 6
  {&#34;消息&#34;:&#34; ERROR&#34;&#34;代码&#34;:1337}

我该如何解决?

1 个答案:

答案 0 :(得分:1)

问题是$_FILES['file']是一个数组,您必须使用$_FILES['file']['tmp_name']

取自PHP documentation

  

全局$_FILES将包含所有上传的文件信息。   其示例形式的内容如下。请注意这一点   假定使用文件上载名称userfile,如中所使用的   上面的示例脚本。这可以是任何名称。

     

$_FILES['userfile']['name']

     
      
  • 客户端计算机上文件的原始名称。
  •   
     

$_FILES['userfile']['type']

     
      
  • 文件的mime类型,如果浏览器提供此信息。一个例子是&#34; image / gif&#34;。然而,这种哑剧类型不会在PHP方面进行检查,因此不会将其价值视为理所当然。
  •   
     

$_FILES['userfile']['size']

     
      
  • 上传文件的大小(以字节为单位)。
  •   
     

$_FILES['userfile']['tmp_name']

     
      
  • 上传文件存储在服务器上的文件的临时文件名。
  •   
     

$_FILES['userfile']['error']

     
      
  • 与此文件上传相关联的错误代码。
  •