Upload с преименуване на фаила

doctorgeo

Registered
Имам един скрипт който качва картинки на сървъра. Скрипта работи коректно, но искам преди да запише картинката да смени името на картинката и да я запише под ново име. В случая 2222.jpg. По начина който съм го направил записва картинката, но без разширението. Моля за малко помощ. Ето го и скрипта:
Код:
echo('Зареди картинка:
<FORM ENCTYPE="multipart/form-data" ACTION="' . $PHP_SELF . '" METHOD="POST">
Фаил: <INPUT TYPE="file" NAME="userfile">
<INPUT TYPE="submit" VALUE="Upload">
</FORM>');
$path = "./";
$max_size = 20000;
if (!isset($HTTP_POST_FILES['userfile'])) exit;
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
if ($HTTP_POST_FILES['userfile']['size']>$max_size)
{ echo "Файлът е много голям<br>"; exit; }
if (($HTTP_POST_FILES['userfile']['type']=="image/gif")
|| ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg")
|| ($HTTP_POST_FILES['userfile']['type']=="image/jpeg")
|| ($HTTP_POST_FILES['userfile']['type']=="image/png")) {
//===============================================
// Идва ми тази идеа да реша проблема
$HTTP_POST_FILES['userfile']['name']= 2222 ; //Записва името на фаила, но без разширението
//================================================
if (file_exists($path . $HTTP_POST_FILES['userfile']['name']))
 { echo "Файлът вече съществува<br>"; exit; }
$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .
$HTTP_POST_FILES['userfile']['name']);
if (!$res) { echo "upload failed!<br>"; exit; }
else
{ echo "Качен фаил:<br>"; }
echo "File Name: ".$HTTP_POST_FILES['userfile']['name']."<br>";
echo "File Size: ".$HTTP_POST_FILES['userfile']['size']." bytes<br>";
echo "File Type: ".$HTTP_POST_FILES['userfile']['type']."<br>";
} else { echo "Wrong file type<br>"; exit; }
}
$my_file = $HTTP_POST_FILES['userfile']['name'];

?>
 
Разгледай този код долу. Той е от upload системкаа на HunteR и прави точно това! :)

БЪЛГАРИЯ НАД ВСИЧКО!

PHP:
<?php
function new_name($exp)
{
        $simbols = "1234567890qwertyuiopasdfgjklzxcvbnm";
        return substr(str_shuffle($simbols), 0, 25).".".$exp;
}

function sakra6tenie($var)
{
        global $max_simbols;
        if (strlen($var) > $max_simbols)
        {
                return nl2br(substr($var, 0, $max_simbols))."...";
        }
        else
        {
                return nl2br($var);
        }
}

function resize($pic)
{
        global $max_width_pic,$max_height_pic;
        list($width,$height) = getimagesize($pic);
    $ratio = $width / $height;
    
    if ($width > $max_width_pic || $height > $max_height_pic)
    {
        if ($width > $height)
        {
            $width = $max_width_pic;
            $height = $width / $ratio;
        }
        elseif ($width < $height)
        {
            $height = $max_height_pic;
            $width = $height * $ratio;
        }
        elseif ($width == $height)
        {
            $width = $max_width_pic;
            $height = $max_height_pic;
        }
    }
    $width = intval($width);
    $height = intval($height);
    return array("width" => $width, "height" => $height);
}
?>
 
На мен точно тази конструкция ми трябва защото вече съм я вградил в една форма. Работи прекрасно. Искам новите снимки да се записват с ново име във вид: номер.jpg или gif
 
След като се поборих с проблема ето и отговора за тези на които им е необходимо:
Код:
<?php

echo('Зареди картинка:
<FORM ENCTYPE="multipart/form-data" ACTION="' . $PHP_SELF . '" METHOD="POST">
Фаил: <INPUT TYPE="file" NAME="ufile" id="ufile">
<INPUT TYPE="submit" VALUE="Качи">
</FORM>');
     if  ($HTTP_POST_FILES['ufile']['name']!='')
 $file_name = $HTTP_POST_FILES['ufile']['name'];
$random_digit=rand(0000,9999); // случайни числа
$new_file_name=$random_digit.$file_name;
$path= "./foto/".$new_file_name;  // път
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Качен фаил<BR/>";
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['ufile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
}
?>
 

Back
Горе