проблем със скрипт

lqlqlq

Registered
Код:
<?php 
$site_link = "http://wow-multimedia.org"; //Лйнк към сайта ви, където се намира ъплоад формата (отзад не слагайте /) 
$upload_dir = "images/"; //Може да се смени с друга папка , която вие си пожелаете 
$size_bytes = 1571200; //Големината на файла в bytes 
$extlimit = "no"; //Да има лимит или не (yes/no) 
$limitedext = array(".gif",".jpg",".png",".jpeg"); //Разрешени файлове за качване 
//Далй папката в която ще се качват файловете съществува или не 
if (!is_dir("$upload_dir")) { 
die ("Грешка: Папката <b>($upload_dir)</b> не съществува"); 
} 

if(isset($_POST['uploadform'])){ 
// Когато полето на формата е попалнено тогава ще се качват нещата 
//Започване на ъплоад формата. 

$file_tmp = $_FILES['filetoupload']['tmp_name']; 
$file_name = $_FILES['filetoupload']['name']; 
//Взимане на размера на файла 
$file_size = $_FILES['filetoupload']['size']; 

//Показване когато не е избран файл 
if (!is_uploaded_file($file_tmp)){ 
echo "Грешка : Моля изберете файл за качване!. <br>↵<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>"; 
exit(); //Излиза от това и не прави нищо друго. 
} 


//Проверява дали големината на файла съвпада с допустимата 
if ($file_size > $size_bytes){ 
echo "Грешка : Файла е твърде голям. Той трябва да бъде под <b>". $size_bytes / 1024 ."</b> KB. <br />↵<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>"; 
exit(); 
} 
//Далй файла е от допустимите 
$ext = strrchr($file_name,'.'); 
if (($extlimit == "yes") && (!in_array(strtolower($ext),$limitedext))) { 
echo("Грешка : Този тип файл не е позволен за качване. "); 
exit(); 
} 


// Далй има такъв файл 
if(file_exists($upload_dir.$file_name)){ 
echo "Файл с такова име: <b>$file_name</b> вече съществува.<br /> Моля сменете името на изображението което искате да качите с друго. <br />↵<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>"; 
exit(); 
} 
$snimkata = $site_link."/".$upload_dir."".$file_name; 
//На мястото на интервала (space) се слага "_". 
$file_name = str_replace(' ', '_', $file_name); 
//Местене на файла в папката която сме посочили отгоре на скрипта 
//move_uploaded_file('filename','destination') С тази функция преместваме файла в избраната от нас диреактория 
if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) { 
//Казва на потребителя кога файла е качен и дава лйнк към него 
echo "<center>Файла (<a href=\"$upload_dir$file_name\">$file_name</a>) е качен успешно! <br /><br /> 
<img src=\"".$site_link."/".$upload_dir."".$file_name."\" width=\"400\" height=\"300\" border=\"0\"><br> 
<a href=".$site_link."/".$upload_dir."".$file_name.">[Оригинален вариант]</a><br />
<b>Форум Линк</b><br /> 
<input type=\"text\" value='[url=".$snimkata."][img]".$snimkata."[/img][/url]' size=\"100\"><br /> 

<b>HTML Текстови линк</b><br /> 
<input type=\"text\" value='<a href=".$snimkata.">".$snimkata."</a>' size=\"100\"><br /> 
<b>Директен линк към оригинала</b><br /> 
<input type=\"text\" value='".$snimkata."' size=\"100\"><br /> 


↵<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>"; 
exit(); 
}else{ 
//Показва грешка при провал на преместването 
echo "Има проблем при преместването на вашия файл. <br />↵<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>"; 
exit(); 
} 
//Край на .... 
// Ако формата не е попълнена да се покаже това : 
}else{ 
//Началото на else 

// Проверяване на сички наши заявки (да не се надвишава големината , и да е един от избраните типове файлове от нас) 
for($i=0;$i<count($limitedext);$i++){ 
if (($i<>count($limitedext)-1))$commas=", ";else $commas=""; 
list($key,$value)=each($limitedext); 
$all_ext .= $value.$commas; 
} 

//Изложението 
echo "<br /><h3>Качване на снимки</h3>" 
."- Поддържани разширения: $all_ext <br />" 

."<form method=\"post\" enctype=\"multipart/form-data\" action=\"\">" 
."<input type=\"file\" name=\"filetoupload\" />" 
."<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\" />" 
."<input type=\"submit\" name=\"uploadform\" value=\"Изпрати\" />" 
."</form>"; 
}//Край на else 

?>
Така ето какво ми трябва, при опит за смяна на ъплоуд папката ми дава при качване на снимка "Грешка при преместване на файла", а директорията я променям на images/upload/ - като папката upload съм я създал в images, обаче нестава, а и нещо друго, как да направя, така, че при качване на снимката винаги да задава някакво измислено "цифрено" или като тук - http://amxmodxbg.org/upload/ и в data.bg е така, качваш снимката с името, примерно: blabla.gif и става 08631114.gif
 
Код:
// Далй има такъв файл 
if(file_exists($upload_dir.$file_name)){ 
echo "Файл с такова име: <b>$file_name</b> вече съществува.<br /> Моля сменете името на изображението което искате да качите с друго. <br />↵<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>"; 
exit(); 
}

го направи:

Код:
// Далй има такъв файл 
$file_name = rand(0,100000).strrchr($file_name,'.');
while(file_exists($upload_dir.$file_name)){ 
$file_name = rand(0,100000).strrchr($file_name,'.');
}

И направи папка upload с права 777
 
gamena007 каза:
Код:
// Далй има такъв файл 
if(file_exists($upload_dir.$file_name)){ 
echo "Файл с такова име: <b>$file_name</b> вече съществува.<br /> Моля сменете името на изображението което искате да качите с друго. <br />↵<a href="$_SERVER[PHP_SELF]">НАЗАД</a>"; 
exit(); 
}

го направи:

Код:
// Далй има такъв файл 
$file_name = rand(0,100000).strrchr($file_name,'.');
while(file_exists($upload_dir.$file_name)){ 
$file_name = rand(0,100000).strrchr($file_name,'.');
}

И направи папка upload с права 777
Всичко стана ок, +1
 

Back
Горе