每次在PHP上传文件时如何创建和命名文件夹?

时间:2013-08-15 09:14:21

标签: php

如何为每次上传创建一个文件夹,但在创建每个文件夹时自动为其编号? 假设我上传了一个文件,然后在上传的文件夹中创建了一个文件夹1,然后其他人或同一个人上传了另一个文件,那么将在上传的文件夹中创建一个文件夹2?有没有办法做到这一点?

这就是我现在所拥有的

$name = $_FILES['file']['name'];
$temp = $_FILES['file']['tmp_name'];

move_uploaded_file($temp,"uploaded/".$name);
$url = "www.Mysite.com/uploaded/$name";
mysql_query("INSERT INTO `asktemp` VALUE ('','$suserid','$askeduserid','$name','$url')");

4 个答案:

答案 0 :(得分:2)

你可以这样做:

$upload_dir = 'uploaded/';
$dir = 1;
while(file_exists($upload_dir.$dir) and is_dir($upload_dir.$dir)) {
    $dir++;
}
mkdir($upload_dir.$dir);

这会创建123等目录

然后就说:

move_uploaded_file($temp,$upload_dir.$dir.'/'.$name);

将您的文件上传到新创建的目录。

答案 1 :(得分:1)

您可能希望将mkdiruniqid结合使用来创建唯一路径。

答案 2 :(得分:0)

只需使用mkdir并动态分配文件夹名称,例如:

$folder_name = $path . "folder_" . $i;
mkdir($folder_name);

要计算$i,您可以计算文件夹数量并添加1。

答案 3 :(得分:-3)

要获取分配给新行的auto_increment ID,请使用mysql_insert_id()