简体   繁体   English

使用随机临时文件名使用PHP上传文件

[英]Upload file with PHP using a random temporary filename

I have a piece of code that uploads a file using it's current file name which is OK unless there is a file already on the server with that name and extension. 我有一段代码可以使用当前文件名上传文件,除非服务器上已经有该文件名和扩展名,否则可以。 How can I modify my code so that it uploads it with a random temporary file name before it renames it? 如何修改代码,使其在重命名之前使用随机的临时文件名上传代码?

Here's my code: 这是我的代码:

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());
}

Thank you for your continued help! 感谢您一直以来的帮助! Pete 皮特

//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.");

Now do whatever you want with it. 现在,用它做任何您想做的。 The saved filename will be $random_name.'.'.$ext 保存的文件名将是$random_name.'.'.$ext

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());
}

With file name added current time stamp so file name will be unique. 添加文件名后,当前时间戳记将使文件名唯一。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM