загрузка файла переименовать rand.ext - PullRequest
0 голосов
/ 17 января 2012

У меня есть скрипт, который запускает загрузку изображения, а затем изменяет его размер на два разных изображения: одно изображение шириной 540 пикселей, а другое изображение шириной 154 пикселя.Сценарий работает нормально для меня, пока я не переименую файлы!

Я хотел бы полностью переименовать файл в случайное число с последующим исходным расширением.

У меня естьслучайное число с последующим.в переменной $ ran2 и исходном расширении файла в переменной $ ext - я думаю, что у меня все равно есть!

это работало, пока я не хотел добавить переименование в конец сценария!

Я полагаю, что эта часть работает неправильно: <- у меня нет расширения файла в переменной! </p>

$filename = "uploads/original/". $ran2.$ext;
$filename1 = "uploads/thumbs/". $ran2.$ext;

, но у меня нет ни малейшего представления о том, на что его изменить, чтобы сделать егоработа!

<?php 
error_reporting(0);

$change="";
$abc="";


 define ("MAX_SIZE","800");

 $ran = rand () ; 
 $ran2 = $ran."."; 

 function getExtension($str) {
         $i = strrpos($str,".");
         if (!$i) { return ""; }
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
 }

 $errors=0;

 if($_SERVER["REQUEST_METHOD"] == "POST")
 {
    $image =$_FILES["file"]["name"];
    $uploadedfile = $_FILES['file']['tmp_name'];


    if ($image) 
    {

        $filename = stripslashes($_FILES['file']['name']);

        $extension = getExtension($filename);
        $extension = strtolower($extension);


 if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
        {

            echo 'Unknown Image extension';
            $errors=1;
        }
        else
        {

 $size=filesize($_FILES['file']['tmp_name']);


if ($size > MAX_SIZE*1024)
{
    echo 'You have exceeded the size limit!';
    $errors=1;
}


if($extension=="jpg" || $extension=="jpeg" )
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);

}
else if($extension=="png")
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);

}
else 
{
$src = imagecreatefromgif($uploadedfile);
}

echo $scr;

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


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


$newwidth1=154;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);

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

imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);


$filename = "uploads/original/". $ran2.$ext;

$filename1 = "uploads/thumbs/". $ran2.$ext;



imagejpeg($tmp,$filename,100);

imagejpeg($tmp1,$filename1,100);

imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
}}

}

//If no errors registred, print the success message
 if(isset($_POST['Submit']) && !$errors) 
 {

    echo 'Image Uploaded Successfully!';
 }

?>

Ответы [ 2 ]

1 голос
/ 17 января 2012

$ext не определено.Вы определили $extension бот, а не $ext Итак, используйте:

$filename = "uploads/original/". $ran2.$extension;
$filename1 = "uploads/thumbs/". $ran2.$extension;
0 голосов
/ 17 января 2012

Попробуйте имя файла без бита «uploads / original /», предполагая, что у сценария есть разрешения на создание файла в текущем каталоге.

если это работает, возможно, путь не найден, или вынеобходимо экранировать символ "/", иначе у сценария нет прав для создания файлов в этих каталогах.

Также используйте расширение $ вместо $ ext и объявите его перед оператором If Post.

...