我想读取txt文件中的数据,但file_get_contents拒绝读取uaing数组,所以我怎么读它我的代码在这里

时间:2016-09-30 07:57:56

标签: php

我正在使用HTML表单上传文件。然后我使用files数组将它们转换为变量,然后我试图读取这个变量。

我的代码在这里:

if(isset($_POST['upload'])) {
    $image = $_FILES['sfile'];
    $contents = file_get_contents($image);
    $links = explode(',',$contents);
    echo $links[0];
}

从以下表格中调用



<html> 
  <head> 
    <title> Trial </title> 
  </head> 
  <body> 
    <form align="center" method="post" action="example.php" enctype="multipart/form-data"> 
      Upload File Here : <input type="file" name="sfile"><br> 
      <input type="submit" name ="upload" value="Upload"> 
    </form> 
  </body> 
</html> 
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您应该从tmp_name阅读,请参阅以下代码:

if (!empty($_FILES['sfile'])) {
    $sfile = $_FILES['sfile'];
    if ($sfile['error'] != UPLOAD_ERR_OK) {
        // output error here
    } else {
        $contents = file_get_contents($sfile['tmp_name']);
        $links = explode(',', $contents);
        echo $links[0];
    }
}

$_FILES具有以下数组格式:

$_FILES['myfile']['name'] - the original file name
$_FILES['myfile']['type'] - the mime type
$_FILES['myfile']['size'] - the file size
$_FILES['myfile']['tmp_name'] - temporary filename
$_FILES['myfile']['error'] - error code

来自http://php.net/manual/en/features.file-upload.errors.php的错误代码:

  

UPLOAD_ERR_OK   值:0;没有错误,文件上传成功。

     

UPLOAD_ERR_INI_SIZE值:1;上传的文件超过了   php.ini中的upload_max_filesize指令。

     

UPLOAD_ERR_FORM_SIZE值:2;上传的文件超过了   在HTML表单中指定的MAX_FILE_SIZE指令。

     

UPLOAD_ERR_PARTIAL价值:3;上传的文件只是部分   上传。

     

UPLOAD_ERR_NO_FILE价值:4;没有上传文件。

     

UPLOAD_ERR_NO_TMP_DIR值:6;缺少临时文件夹。介绍   在PHP 5.0.3中。

     

UPLOAD_ERR_CANT_WRITE价值:7;无法将文件写入磁盘。   在PHP 5.1.0中引入。

     

UPLOAD_ERR_EXTENSION值:8; PHP扩展程序停止了该文件   上传。 PHP没有提供确定导致哪个扩展的方法   文件上传停止;检查加载的扩展名列表   phpinfo()可能有所帮助。在PHP 5.2.0中引入。

答案 1 :(得分:0)

查看http://php.net/manual/en/features.file-upload.post-method.php

您声明$ image的地方应该是$_FILES['sfile']['tmp_name'];

  

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