图像上传并保存多个副本/名称

时间:2013-12-19 17:13:46

标签: php file-upload copy rename

如何上传图像,然后使用其他名称和多个副本保存在同一目录中?

上传图片的一个副本(abcd.jpg)需要命名为“212_1_today_00.jpg”,另一个副本需要命名为“424_1_today_00.jpg”,可能是另一个'848_1_today_01.jpg'

2 个答案:

答案 0 :(得分:1)

更好地使用time()而不是今天,因为随机的no可能会在某个时候重复.......

<?php
if($_FILES){
    $image = $_FILES['image'];
    if($image['error'] == 0){
        $a = explode('.',$image['name']);
        $e = end($a);
        $t = time();
        $name = rand(100, 999)."_1_{$t}";
        move_uploaded_file($image['tmp_name'], $name.'_00.'.$e);

        # if u want 1 copy
        copy($name.'_00.'.$e, rand(100, 999)."_1_{$t}_01.{$e}");

        # if u want n more copies
        /*
        $n = 5; #no of copies u want
        for ($i = 1; $i <= $n; $i++) {
            copy($name.'_00.'.$e, rand(100, 999)."_1_{$t}_0{$i}.{$e}");
        }
        */
        echo 'Done';

    }
}

?>

<form method="post" enctype="multipart/form-data">
    <input type="file" name="image" accept='image/*'/>
    <input type="submit">
</form>

答案 1 :(得分:0)

首先我上传了一个名为'212_1_today_00.jpg'并使用PHP函数复制了copy
找到http://www.php.net/manual/en/function.copy.php

<?php
$file = './myfolder/212_1_today_00.jpg';
$newfile = './myfolder/424_1_today_00.jpg';

if (!copy($file, $newfile)) {
    echo "failed to copy $file...\n";
}