File Upload + описание на качения file

Bummer

Registered
Използвам следния upload script
Код:
<?php
echo \"<font color=red>\";
$site_link = \"LINKA\"; //Лйнк към сайта ви, където се намира ъплоад формата (отзад не слагайте /)
$upload_dir = \"./upload/\"; //Може да се смени с друга папка , която вие си пожелаете
$size_bytes = 104857600; //Големината на файла в bytes
$extlimit = \"yes\"; //Да има лимит или не (yes/no)
$limitedext = array(\".mp3\",\".wma\",\".avi\"); //Разрешени файлове за качване
//Далй папката в която ще се качват файловете съществува или не
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 / 1024 .\"</b> MB. <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>»<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.\"\\\" border=\\\"0\\\"><br>
<b>phpBB/IPB - снимката</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.\"><img src=\".$snimkata.\" border=1></a>\' size=\\\"100\\\"><br>
<b>HTML Оригинален размер без контур</b><br>
<input type=\\\"text\\\" value=\'<a href=\".$snimkata.\"><img src=\".$snimkata.\" border=0></a>\' 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</b> <br>\"
.\"- Максимална големина = \". $size_bytes / 1024 / 1024 .\"MB\"
.\"<p><form method=\\\"post\\\" enctype=\\\"multipart/form-data\\\" action=\\\"\\\">\"
.\"<input type=\\\"file\\\" name=\\\"filetoupload\\\"><br>\"
.\"<input type=\\\"hidden\\\" name=\\\"MAX_FILE_SIZE\\\" value=\\\"$size_bytes\\\"><br>\"
.\"<input type=\\\"Submit\\\" name=\\\"uploadform\\\" value=\\\"Качи\\\">\"
.\"</form>\";
}//Край на else

?>
Ще може ли някой да го попреработи така, че да има и едно поле \"описание\" и като се напише описание вътре, да бъде създаван .txt document с името на качения file в папката upload, в който да се съдържа описанието :)
Благодаря много на който помогне :)
 
Кода ти беше ужасен :roll: На бързо го оправях и може да съм изтрил нещо...
Код:
<?php
echo "<font color=\"red\">";
$site_link = "LINKA";
$upload_dir = "./upload/"; 
$size_bytes = 104857600; 
$extlimit = "yes"; 
$limitedext = array(".mp3",".wma",".avi");

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'];
$comment = $_POST['comment'];

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 / 1024 .\"</b> MB. <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>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}
$snimkata = $site_link."/".$upload_dir."/".$file_name;

$file_name = str_replace(" ", "_", $file_name);

if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) {

$save="$comment\n";

$fp = fopen ( "$upload_dir/$file_name.inc" ,"a");
fwrite($fp, $save);
fclose($fp); 

echo "<center>Файла (<a href=\"$upload_dir$file_name\">$file_name</a>) е качен успешно! <br><br>
<img src=\$site_link."/".$upload_dir."/".$file_name."\" border=\"0\"><br>
<b>phpBB/IPB - снимката</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.\"><img src=\".$snimkata.\" border=1></a>\' size=\"100\"><br>
<b>HTML Оригинален размер без контур</b><br>
<input type=\"text\" value=\'<a href=\".$snimkata.\"><img src=\".$snimkata.\" border=0></a>\' 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{


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</b> <br>
Максимална големина = $size_bytes / 1024 / 1024 MB
<p><form method=\"post\" enctype=\"multipart/form-data\" action=\"\">
<input type=\"file\" name=\"filetoupload\"><br>
<textarea name="comment">описание</textarea>
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\"><br>
<input type=\"Submit\" name=\"uploadform\" value=\"Качи\">
</form>";
}
echo "</font>";
?>

Ако има грешка, казвай :roll: Прочети и тук:
http://web-tourist.net/login/login/view.php?st=304
 
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in \www\upload.php on line 55

Parse error: syntax error, unexpected '"', expecting ',' or ';' in \www\upload.php on line 55
 
1. Кода ти е ужасен.
2. Незнам как работи при тебе тоя код, но извежда грешки.
3. Надявам се някой да ти помогне, че с тоя код... :o
 
http://web-tourist.net/login/login/view.php?st=1487
Това е урока.Обаче ползвам proxy и то вкарва наклонени черти при кавичките.Ако може някой да го качи готово някъде като .txt file или да ми пише на skype - furyboy1992
Благодаря ;)
 
Код:
<?php
echo "<font color=\"red\">";
$site_link = "LINKA";
$upload_dir = "/upload/";
$size_bytes = 104857600;
$extlimit = "yes";
$limitedext = array(".mp3",".wma",".avi");

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'];
$comment = $_POST['comment'];
$filesize = round(($file_size/1024000),3) . " MB";

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


if ($file_size > $size_bytes){
echo "Грешка : Файла е твърде голям. Той трябва да бъде под <b>$filesize</b>. <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>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}
$snimkata = "$site_link$upload_dir$file_name";

$file_name = str_replace(" ", "_", $file_name);

if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) {

$save="$comment\n";

$fp = fopen ( "$upload_dir/$file_name.inc" ,"a");
fwrite($fp, $save);
fclose($fp);

echo "<center>Файла (<a href=\"$upload_dir$file_name\">$file_name</a>) е качен успешно! <br/><br/>
<img src=\"$snimkata\" border=\"0\"><br/>
<b>phpBB/IPB - снимката</b><br>
<xmp>[url=\"$snimkata\"][img]\"$snimkata\"[/img][/url]</xmp><br/>
<b>HTML Оригинален размер с контур</b><br>
<xmp><a href=\"$snimkata\"><img src=\"$snimkata\" border=1></a></xmp><br/>
<b>HTML Оригинален размер без контур</b><br>
<xmp><a href=\"$snimkata\"><img src=\"$snimkata\" border=0></a></xmp><br/>
<b>HTML Текстови линк</b><br>
<xmp><a href=\"$snimkata\">\"$snimkata\"</a><br/></xmp>
<b>Директен линк към оригинала</b><br>
<xmp>$snimkata</xmp><br>


»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}else{

echo "Има проблем при преместването на вашия файл. <br>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}

}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</b> <br>
Максимална големина = $size_bytes Bytes
<p><form method=\"post\" enctype=\"multipart/form-data\" action=\"\">
<input type=\"file\" name=\"filetoupload\"><br>
<textarea name=\"comment\">описание</textarea>
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\"><br>
<input type=\"Submit\" name=\"uploadform\" value=\"Качи\">
</form>";
}
echo "</font>";
?>

Готово. Ето ти линк: http://85.255.170.68/up.txt
 
Не е само за картинки, можеш да позволяваш и друг тип files.А това за текстовия документ явно ще трябва да почакам, че нещо не е online...
 
Кода е супер, обаче има 1 малък - голям проблем: коментара го записва в кофти file.Да речем качване pic.jpg и коментара става pic.jpg.inc и не може да бъде четен..
 
Когато някой качи file и напише коментар става следното нещо.Да речем качвам картинка image.jpg.Картинката се качва успешно, НО коментара се записва като image.jpg.inc
Когато разглеждам file от pc, го виждам като текстов документ и чета съдържанието му безпроблемно.Но когато го разглеждам през browser, коментара изглежда като картинка.И като цъкна на нея, вътре виждам линка към коментара...
 

Back
Горе