Uploadify多上传生成tumnails仅上传并覆盖一个图像

时间:2014-05-01 05:58:16

标签: php jquery thumbnails uploadify

我正在使用uploadify将图片上传到我的网站。

这是一个很棒的产品,但我不能让缩略图正常工作。

我已经调整了一些我发现的代码,它运行正常,它一次上传了我喜欢的多个图像,但是当它上传每个图像时会覆盖上一个图像,因此只有一个图像和一个拇指保留在上传文件夹中

这是我正在使用的代码,任何帮助都会很棒

<?php

// Define a destination
$targetFolder = '../uploadifythumbtest'; // Relative to the root
$thumbsFolder = '../uploadifythumbtest/thumbs/'; // Relative to the root



 if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $targetFolder;
$fileParts = pathinfo ( $_FILES ['Filedata'] ['name'] );
$extension = $fileParts ['extension'];
$filename = "artist_" . $yourid . "." . $fileParts ['extension'];
$targetFile = rtrim ( $targetPath, '/' ) . '/' . $filename;
$targetThumb = rtrim ( $thumbsFolder, '/' ) . '/' . $filename;

// Validate the file type
$fileTypes = array (
        'jpg',
        'jpeg',
        'gif',
        'png',
        'JPG',
        'bmp' 
); // File extensions

if (in_array ( $fileParts ['extension'], $fileTypes )) {
    // CREATE THUMBNAIL
    if ($extension == "jpg" || $extension == "jpeg") {
        $src = imagecreatefromjpeg ( $tempFile );
    } else if ($extension == "png") {
        $src = imagecreatefrompng ( $tempFile );
    } else {
        $src = imagecreatefromgif ( $tempFile );
    }

    list ( $width, $height ) = getimagesize ( $tempFile );

    $newwidth = 50;
    $newheight = ($height / $width) * $newwidth;
    $tmp = imagecreatetruecolor ( $newwidth, $newheight );

    imagecopyresampled ( $tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width,           $height );

    $thumbname = $targetThumb;



    imagejpeg ( $tmp, $thumbname, 100 );

    imagedestroy ( $src );
    imagedestroy ( $tmp );

    move_uploaded_file($tempFile,$targetFile);
    echo '1';
} else {
    echo 'Invalid file type.';
}
}
?>

1 个答案:

答案 0 :(得分:1)

用于保存图像的文件名在以下行中创建:

$filename = "artist_" . $yourid . "." . $fileParts ['extension'];

因此,您上传的每个文件都会使用相同的名称。

您可以使用原始文件名文件名:

$filename = $fileParts['filename']. "." . $fileParts ['extension'];