【问题标题】:Adding timestamp and custom name to a File uploaded via PHP将时间戳和自定义名称添加到通过 PHP 上传的文件
【发布时间】:2015-06-11 09:29:30
【问题描述】:

我正在寻找一种将时间戳和自定义名称添加到通过 php 上传到我的服务器的文件的方法。我在 $_FILE[] 上做了一些阅读来理解它的论点,但是官方的 PHP 文档没有给出详细的解释。

这是我用来上传的代码,我可以在哪里包含时间戳(日期('m-d-Y_H:i:s'))和名称(即:“myFile”),以便为以下文件创建唯一名称上传了吗?

谢谢!

$date = date('m-d-Y_H:i:s');    
$file_path = "uploads/{$_POST['name']}/";

    if (!file_exists("uploads/{$_POST['name']}")) {
        mkdir("uploads/{$_POST['name']}", 0777, true);  
    } else {
        echo 'folder already exists!';
    }

    $file_path = $file_path . basename($_FILES['zipFile']['name']);
    if (move_uploaded_file($_FILES['zipFile']['tmp_name'], $file_path)) {
        echo "success";
    } else {
        echo "fail";
    }

【问题讨论】:

标签: php date file-upload timestamp createfile


【解决方案1】:

希望你能得到一个想法

$file_path = "uploads/".$_POST['name']."/";   
$newfile = $_POST['NAME'].date('m-d-Y_H:i:s')'.zip'; //Please use date('m-d-Y_H-i-s') for Linux. 
$filename = $file_path.$newfile;
if(!file_exists($filename))
{
    if(move_uploaded_file($_FILES['zipFile']['tmp_name'],$filename))
    {
        // Other codes
    }
}
else
{
    echo 'file already exists';
}

【讨论】:

  • 请注意,此示例将在 Windows 上引发警告,因为文件名中不允许使用冒号 (:)。 date('m-d-Y_H-i-s') 可以正常工作。我也不建议在 linux 文件系统中使用冒号,因为如果你在 Windows 中需要它,它会生成一个“不可复制的文件”。
【解决方案2】:

$file_path 后面添加文件名非常简单。

$filename = date('m-d-Y_H:i:s').'_'.md5(time).'.zip';

if (move_uploaded_file($_FILES['zipFile']['tmp_name'], $file_path.'/'.$filename)) {
    echo "success";
} else {
    echo "fail";
}

如果您确定只有 zip 文件,您可以直接使用扩展名,否则您应该使用占位符。

【讨论】:

    【解决方案3】:

    使用它来更改自定义名称+(加)时间戳

    中添加您的自定义名称

    your_custom_name提供什么名字你什么...

    $filename=$_FILES[upload][name];
    $ext=substr($filename,strrpos($filename,'.')+1);
    $fname=date("Y-m-d-H-i-s")."-";
    $fname.="your_custom_name"."-";
    $fname.=uniqid().".".$ext;
    $ext=strtolower($ext);
    if(move_uploaded_file($_FILES[upload][tmp_name], "../images/products/".$fname)) {
       echo "success";
    } else {
        $er_imgs="Failed";
    }
    

    【讨论】:

      【解决方案4】:

      您可以将上传的文件数据保存到数据库中,并添加您需要的所有数据,例如时间戳、上传者的 ip、文件大小、文件名

      【讨论】:

        【解决方案5】:

        如果我正确理解了您的问题.. 这是你要求的吗..

               if(is_uploaded_file($tmp_name))
                {
                    $org_name = date('m-d-Y_H:i:s')."_".$yourname;
                    $dest = "uploads/$org_name";
                    move_uploaded_file($tmp_name, $dest);
                }
        

        【讨论】:

          【解决方案6】:

          您不能在文件名中使用“:”。将其替换为“-”:

          $filename= 'yourprefix_' . date('d-m-Y_H-i-s') . '.zip';
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-29
            • 1970-01-01
            • 1970-01-01
            • 2017-10-19
            • 2023-03-16
            • 1970-01-01
            相关资源
            最近更新 更多