重命名多图像上传

时间:2013-09-20 20:12:25

标签: php

这是我的问题我需要重命名图像,当有人上传它,我想使用日期和时间,并创建$ datatime值,我不知道如何使其工作可以有人告诉我该怎么做?任何帮助非常感谢...非常感谢

<?php if(isset($_POST['action'])=='uploadfiles') {
$time = time();
$date = date('Y-m-d');
$datetime = "$time" . "$date";

$upload_directory   ='uploads/';  
$count_data         =count($_FILES['data']) ;
$upload             = $_FILES['data']['name'][$x].',';  

for($x=0;$x<$count_data;$x++) {
    $upload .= $_FILES['data']['name']["$x" . ""].',';
    move_uploaded_file($_FILES['data']['tmp_name'][$x], $upload_directory . $_FILES['data']['name'][$x]); ##### upload into your directory     }

//echo "upload successfully..";
$con="INSERT INTO inmuebles (foto1) values ('$upload')";
$query=mysql_query($con); } ?>

3 个答案:

答案 0 :(得分:2)

在此处更改:

move_uploaded_file(
  $_FILES['data']['tmp_name'][$x],
  $upload_directory . $datetime . $_FILES['data']['name'][$x]
); ##### upload into your directory

此处$datetime应该是包含时间戳的字符串。

答案 1 :(得分:0)

尝试以下方法:

$ext = pathinfo($_FILES['data']['name'][$x], PATHINFO_EXTENSION);
$newname = $datetime . '.' . $ext;
move_uploaded_file($_FILES['data']['tmp_name'][$x],
                   $upload_directory . $newname);

这将替换当前文件名,并维护最初上传文件的扩展名。

如果您想维护原始文件名,只需追加 datetime,请使用以下内容:

$info = pathinfo($_FILES['data']['name'][$x]);
$ext = $info['extension'];
$name = $info['filename'];
$newname = $name . $datetime . '.' . $ext;
move_uploaded_file($_FILES['data']['tmp_name'][$x],
                   $upload_directory . $newname);

答案 2 :(得分:0)

使用日期和时间是一种独特标记任何东西的糟糕方式,因为保真度的限制是每秒1项,而计算机的速度比这快,同时有超过1人可以同时使用上传时间。而是使用为此构建的东西,例如UUID(又名GUID)。您可以在PHP中使用uniqid()函数,这是非常基本的,或者如果您阅读了有人编写UUID函数的注释(使用版本5)。

http://php.net/manual/en/function.uniqid.php