将图像上传到具有唯一名称的图像文件夹

时间:2012-11-06 15:53:19

标签: php

这是我的图片上传页面。我想要的是小位版。我希望图像名称看起来像(文件夹)image / userid_time.jpg

所以我想将图片上传到图片文件夹,

我希望所有图片都有新名称,或者我们可以说出唯一名称。

请加上任何意见。

<?php // upload2.php
echo <<<_END
<html><head><title>PHP Form Upload</title></head><body>
<form method='post' action='upload2.php' enctype='multipart/form-data'>
Select a JPG, GIF, PNG or TIF File:
<input type='file' name='filename' size='10' />
<input type='submit' value='Upload' /></form>
_END;
if ($_FILES) {
    $name = $_FILES['filename']['name'];
    switch ($_FILES['filename']['type']) {
        case 'image/jpeg':
            $ext = 'jpg';
            break;
        case 'image/gif':
            $ext = 'gif';
            break;
        case 'image/png':
            $ext = 'png';
            break;
        case 'image/tiff':
            $ext = 'tif';
            break;
        default:
            $ext = '';
            break;
    }
    if ($ext) {
        $n = "image.$ext";
        move_uploaded_file($_FILES['filename']['tmp_name'], $n);
        echo "Uploaded image '$name' as '$n':<br />";
        echo "<img src='$n' />";
    } else
        echo "'$name' is not an accepted image file";
} else
    echo "No image has been uploaded";
echo "</body></html>";
?>

谢谢:)

4 个答案:

答案 0 :(得分:1)

您可以拥有文件名,然后可以使用uniqid("{$filename}_")附加它。因此输出类似于filename_4b3403665fea6,然后您可以添加扩展名:)

文档:http://uk.php.net/manual/en/function.uniqid.php

编辑:我道歉,我误解了你的问题。

答案 1 :(得分:1)

只需更改$n即可。由于您始终将其设置为"image.$ext",因此您将始终获得相同的文件名。

相反,您需要根据需要命名。假设用户的ID在$userid."_".time().".".$ext

,则为$userid之类的内容

答案 2 :(得分:1)

您可以使用uploadify,因为:

  • 多个文件上传
  • 拖放
  • 实时进度指标
  • 自定义上传限制
  • 极端定制

和......

...$verifyToken = md5('unique_salt' . $_POST['timestamp']);...

请参阅demo

答案 3 :(得分:1)

假设您可以将用户ID转换为名为$ userId的变量,您可以像之前建议的那样更改$ n变量。

$timestamp = time();
$n = "image/$userId_$timestamp.$ext";

执行move_uploaded_file()方法时,文件将移动到相对于上传脚本位置的图像目录。您可能希望确保图像文件夹已存在且可写。