【发布时间】:2014-07-20 18:04:11
【问题描述】:
我正在尝试上传一个文件并重命名它(如果它已经存在)。 我希望我这样做的方式是,当 det 相同的文件上传时,名称只需添加 1,然后是 2,然后是 3,依此类推。
示例:如果文件“file”存在,则新文件应该是“file1”,然后是下一个“file2”。
我在网上看到了一些示例,但我认为没有适合我的代码的示例(菜鸟)
这是我现在的代码:
$id = $_SESSION['id'];
$fname = $_FILES['dok']['name'];
if ($_FILES['dok']['name'] !=""){
// Checking filetype
if($_FILES['dok']['type']!="application/pdf") {die("You can only upload PDF files");}
// Checking filesize
if ($_FILES['dok']['size']>1048576) {die("The file is too big. Max size is 1MB");}
// Check if user have his own catalogue
if (file_exists("filer/".$id."/")) {
// Moving the file to users catalogue
move_uploaded_file($_FILES['dok']['tmp_name'],"filer/".$id."/".$fname);}
//If user don't have his own catalogue
else {
// Creates new catalogue then move the file in place
mkdir("filer/".$id);
move_uploaded_file($_FILES['dok']['tmp_name'],"filer/".$id."/".$fname); } }
有人可以帮我在哪里输入解决此问题的代码吗? 非常感谢!
【问题讨论】:
-
你自己有没有尝试过?
-
您的代码非常危险。您直接使用 USER 提供的
['name']参数作为文件在服务器上的最终位置。恶意用户可以嵌入路径信息并使用您的脚本在服务器上随意书写他们想要的任何文件。您的['type']支票不是安全性。没用的。 mime 类型很容易伪造。 -
是的,我实际上尝试了一堆,但由于我很新,所以并没有让它工作,我扼杀了编辑代码并使其适合我的..
标签: php file-upload filenames file-rename file-exists