【问题标题】:Upload file with PHP using a random temporary filename使用随机临时文件名使用 PHP 上传文件
【发布时间】:2013-10-17 22:07:31
【问题描述】:

我有一段代码可以使用当前文件名上传文件,这没问题,除非服务器上已经存在具有该名称和扩展名的文件。如何修改我的代码,以便在重命名之前使用随机临时文件名上传它?

这是我的代码:

if(!empty($_FILES['file']['name'])) {
copy($_FILES['file']['tmp_name'], WEB_UPLOAD."/pdf/".$_FILES['file']['name']) or die("Error uploading file.");
$ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".")));
$filename = $url.$ext;
rename(WEB_UPLOAD."/pdf/".$_FILES['file']['name'], WEB_UPLOAD."/pdf/".$filename);       
mysql_query ("UPDATE downloads SET file ='".$filename."' WHERE id = '".$insertid."'") or die (mysql_error());
}

感谢您一直以来的帮助! 皮特

【问题讨论】:

    标签: php file upload copy rename


    【解决方案1】:
    //get the extension
    $ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".")));
    //generate random name
    $random_name = uniqid();
    copy($_FILES['file']['tmp_name'], WEB_UPLOAD."/pdf/".$random_name . '.' . $ext) or die("Error uploading file.");
    

    现在随心所欲。保存的文件名将是$random_name.'.'.$ext

    【讨论】:

      【解决方案2】:
      if(!empty($_FILES['file']['name'])) {
          $targetFile = time().$_FILES['file']['name'];
          copy($_FILES['file']['tmp_name'], WEB_UPLOAD."/pdf/".$targetFile) or die("Error uploading file.");
          $ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".")));
          $filename = $url.$ext;
          rename(WEB_UPLOAD."/pdf/".$targetFile , WEB_UPLOAD."/pdf/".$filename);       
          mysql_query ("UPDATE downloads SET file ='".$filename."' WHERE id = '".$insertid."'") or die (mysql_error());
      }
      

      文件名添加了当前时间戳,因此文件名将是唯一的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-15
        • 1970-01-01
        • 2015-01-18
        • 2020-05-19
        • 2012-09-13
        • 2018-01-18
        • 1970-01-01
        • 2017-09-22
        相关资源
        最近更新 更多