【问题标题】:Getting complete PATH of uploaded file - PHP获取上传文件的完整路径 - PHP
【发布时间】:2011-03-27 16:55:55
【问题描述】:

我有一个表单(HTML、PHP),允许最终用户上传文件以使用上传文件(特别是 .csv)中的记录更新数据库(MySQL)。但是,在 phpscript 中,我只能获取文件名而不是指定文件的完整路径。 fopen() 由于这个原因而失败。谁能告诉我如何才能找到完整的路径?

HTML 代码:

<html>
<head>
</head>
<body>
<form method="POST" action="upload.php" enctype="multipart/form-data">
    <p>File to upload : <input type ="file" name = "UploadFileName"></p><br />
    <input type = "submit" name = "Submit" value = "Press THIS to upload">
</form>
</body>
</html>

PHP 脚本:

<?php
   .....
......
   $handle = fopen($_FILES["UploadFileName"]["name"], "r"); # fopen(test.csv) [function.fopen]: failed to open stream: No such file or directory
?>

【问题讨论】:

  • 这是一个很有帮助的好问题。

标签: php


【解决方案1】:

name 指的是客户端上的文件名。要在服务器端获取文件名(包括完整路径),需要使用tmp_name

$handle = fopen($_FILES["UploadFileName"]["tmp_name"], 'r');

【讨论】:

    【解决方案2】:
    $target='uploads/'.basename($_FILES['UploadFileName']['name']);
    
    if(move_uploaded_file($_FILES['UploadFileName']['tmp_name'],$target)) {
    
         //Insert into your db
    
         $fp = fopen($target, "r");
    }
    

    【讨论】:

      【解决方案3】:

      我是这样写的:

      $filePath = realpath($_FILES["file"]["tmp_name"]);
      

      这给了我在 PHP 中上传文件的完整路径。如果您在文件下载中发现 0 字节问题,只需像这样修改这个 content-lenght 行

      header("Content-Length: ".filesize($filePath));
      

      其中 $filePath 应该是文件的绝对路径,而不仅仅是文件句柄。

      【讨论】:

        【解决方案4】:

        使用以下代码,

        $handle = fopen($_FILES["UploadFileName"]["tmp_name"], 'r');
        

        【讨论】:

          【解决方案5】:

          我是这样用的……

          <?php
          $NameOriginal = $_FILES["UploadFileName"]['name'];
          $Typo_Image = $_FILES["UploadFileName"]['type'];
          $name_Temp = $_FILES["UploadFileName"]['tmp_name']; 
          ?>
          

          【讨论】:

            猜你喜欢
            • 2013-11-24
            • 2016-11-26
            • 2011-04-17
            • 2011-08-14
            • 2016-03-13
            • 2012-07-13
            • 1970-01-01
            • 2015-06-15
            • 2020-12-14
            相关资源
            最近更新 更多