Проблем с Ъплоуд скрипт

chepa

Registered
Ето кода дава, че разширението на файл не се поддържа а
именно за ".rar" разширения е направен от какво може да е?

Код:
<?php	                                       				                                       			
//51200 bytes = 50KB
$size_bytes = 151200; //Максималната големина на файла
$extlimit = "yes"; //Ако искате да има лимит при файловете написете "yes" , а ако не искате напишете "no"
$limitedext = array(".rar",".zip",".txt"); //Разрешени файлове за качванеe ,

// Името на файла, който вие качвате
$file_name = $HTTP_POST_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];

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


// Произволно 4 цифрено число, което ще е пред името на самия файл, който вие качвате
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); //изкарваме датата
$chas=date("g-i-s_a"); //изкарваме часа


//Използвайте "точка (.)" ако искате да прибавите други неща при преименуването на файла, освен 4те произволни цифри

$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;

//$new_file_name = новото име на качения файл
//Ако качим файл с име : cartoon.gif той ще се запише в папката upload/
//$path= "upload/".$new_file_name; може да си го промените - $path= "желаната от вас папка/".$new_file_name;
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if($fnick=="AlternativeTeam") {
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Успешно<BR/>";

//$new_file_name = новото име на файла
//$HTTP_POST_FILES['ufile']['size'] = размер на файла
//$HTTP_POST_FILES['ufile']['type'] = тип на файла
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$HTTP_POST_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Грешка";
}
}
}
?>
 
Пробвай така:

PHP:
<?php                                                                                                      
//51200 bytes = 50KB
$size_bytes = 151200; //Максималната големина на файла
$extlimit = "yes"; //Ако искате да има лимит при файловете написете "yes" , а ако не искате напишете "no"
$limitedext = array("rar","zip","txt"); //Разрешени файлове за качванеe ,

// Името на файла, който вие качвате
$file_name = $HTTP_POST_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];

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


// Произволно 4 цифрено число, което ще е пред името на самия файл, който вие качвате
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); //изкарваме датата
$chas=date("g-i-s_a"); //изкарваме часа


//Използвайте "точка (.)" ако искате да прибавите други неща при преименуването на файла, освен 4те произволни цифри

$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;

//$new_file_name = новото име на качения файл
//Ако качим файл с име : cartoon.gif той ще се запише в папката upload/
//$path= "upload/".$new_file_name; може да си го промените - $path= "желаната от вас папка/".$new_file_name;
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if($fnick=="AlternativeTeam") {
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Успешно<BR/>";

//$new_file_name = новото име на файла
//$HTTP_POST_FILES['ufile']['size'] = размер на файла
//$HTTP_POST_FILES['ufile']['type'] = тип на файла
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$HTTP_POST_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Грешка";
}
}
}
?>
 
Това ми даде твоя скрипт ето го и 19 ред:

Код:
if (($extlimit == "yes") && (!in_array($ext),$limitedext)) {

Parse error: syntax error, unexpected ',' in D:\xampp\htdocs\admin\plugin_upload.php on line 19
 
chepa каза:
Това ми даде твоя скрипт ето го и 19 ред:

Код:
if (($extlimit == "yes") && (!in_array($ext),$limitedext)) {

Parse error: syntax error, unexpected ',' in D:\xampp\htdocs\admin\plugin_upload.php on line 19

тези проблеми са ти заради xampp ползвай е това :)
 
Пробвай така:

PHP:
<?php                                                                                                      
//51200 bytes = 50KB
$size_bytes = 151200; //Максималната големина на файла
$extlimit = "yes"; //Ако искате да има лимит при файловете написете "yes" , а ако не искате напишете "no"
$limitedext = array("rar","zip","txt"); //Разрешени файлове за качванеe ,

// Името на файла, който вие качвате
$file_name = $HTTP_POST_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];

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


// Произволно 4 цифрено число, което ще е пред името на самия файл, който вие качвате
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); //изкарваме датата
$chas=date("g-i-s_a"); //изкарваме часа


//Използвайте "точка (.)" ако искате да прибавите други неща при преименуването на файла, освен 4те произволни цифри

$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;

//$new_file_name = новото име на качения файл
//Ако качим файл с име : cartoon.gif той ще се запише в папката upload/
//$path= "upload/".$new_file_name; може да си го промените - $path= "желаната от вас папка/".$new_file_name;
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if($fnick=="AlternativeTeam") {
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Успешно<BR/>";

//$new_file_name = новото име на файла
//$HTTP_POST_FILES['ufile']['size'] = размер на файла
//$HTTP_POST_FILES['ufile']['type'] = тип на файла
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$HTTP_POST_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Грешка";
}
}
}
?>

Или така:

PHP:
<?php                                                                                                      
//51200 bytes = 50KB
$size_bytes = 151200; //Максималната големина на файла
$extlimit = "yes"; //Ако искате да има лимит при файловете написете "yes" , а ако не искате напишете "no"
$limitedext = array("rar","zip","txt"); //Разрешени файлове за качванеe ,

// Името на файла, който вие качвате
$file_name = $HTTP_POST_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];

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


// Произволно 4 цифрено число, което ще е пред името на самия файл, който вие качвате
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); //изкарваме датата
$chas=date("g-i-s_a"); //изкарваме часа


//Използвайте "точка (.)" ако искате да прибавите други неща при преименуването на файла, освен 4те произволни цифри

$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;

//$new_file_name = новото име на качения файл
//Ако качим файл с име : cartoon.gif той ще се запише в папката upload/
//$path= "upload/".$new_file_name; може да си го промените - $path= "желаната от вас папка/".$new_file_name;
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if($fnick=="AlternativeTeam") {
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Успешно<BR/>";

//$new_file_name = новото име на файла
//$HTTP_POST_FILES['ufile']['size'] = размер на файла
//$HTTP_POST_FILES['ufile']['type'] = тип на файла
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$HTTP_POST_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Грешка";
}
}
}
?>

И кажи дали има резултат.
 
PHP:
<?php                                                                                                      
//51200 bytes = 50KB
$size_bytes = 151200; //Максималната големина на файла
$extlimit = "yes"; //Ако искате да има лимит при файловете написете "yes" , а ако не искате напишете "no"
$limitedext = array("rar","zip","txt"); //Разрешени файлове за качванеe ,

// Името на файла, който вие качвате
$file_name = $HTTP_POST_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];

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


// Произволно 4 цифрено число, което ще е пред името на самия файл, който вие качвате
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); //изкарваме датата
$chas=date("g-i-s_a"); //изкарваме часа


//Използвайте "точка (.)" ако искате да прибавите други неща при преименуването на файла, освен 4те произволни цифри

$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;

//$new_file_name = новото име на качения файл
//Ако качим файл с име : cartoon.gif той ще се запише в папката upload/
//$path= "upload/".$new_file_name; може да си го промените - $path= "желаната от вас папка/".$new_file_name;
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if($fnick=="AlternativeTeam") {
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Успешно<BR/>";

//$new_file_name = новото име на файла
//$HTTP_POST_FILES['ufile']['size'] = размер на файла
//$HTTP_POST_FILES['ufile']['type'] = тип на файла
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$HTTP_POST_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Грешка";
}
}
}
?>

Лошото на този вариянт е че ако се добавят формати , ще трябва да се променя и проверката.
Но нещо немога да зацепа защо не искаше с in_array()...
 
Ако имаш по - хубав код.. дай го насам ако имаш
желание този явно е доста проблемен :lol: :D

Отново ...

Код:
Грешка : Този тип файл не е позволен за качване.


Това е другия код, който имам работи но само за .jpg и тези формати
ако можеш да го направиш за .rar .txt .zip



Код:
echo'
<form method="post" enctype="multipart/form-data" action="">

<div style="float: left; padding-left: 20px;">
<b class="hui">Аватар:&nbsp&nbsp</b><input type="file" name="uploaded" style="width: 170px; margin-left: 52px;"/><br/><br/>
</div><br/><br/><br/>
<center><input type="submit" name="submit" value="Прикачи"/><br/><br/></center>
</form>
';

if($_POST['submit']){
$target = "upload/"; //Директорията за качване
$jpg = ".jpg";
$aaa = "aaa";
$target = $target.$username.$jpg;
$ok=1;

//Това е ограничението ни за размер
if ($uploaded_size > 350000)
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
}

//Това е ограничението за вид на файла
  $allowedExtensions = array("jpg","jpeg","gif","png"); 

 if (!($_FILES['uploaded']['type'] == "image/jpeg" || $_FILES['uploaded']['type'] == "image/png" || $_FILES['uploaded']['type'] ==  "image/gif")) { 
echo "You may only upload jpeg and gif files.<br>";
$ok=0;
}
//Проверка дали файл със същото име вече не съществува в директорията
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Sorry your file was not uploaded";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded";

mysql_query( "UPDATE register SET avatar = '$target' WHERE username = '$username'"); 
}
else
{
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно
}
}
}
?>
 
Така:

PHP:
<?php              
if($fnick == "AlternativeTeam")
{
echo "<form method='POST' enctype='multipart/form-data'>";
echo "File: <input type='file' name='ufile'> <input type='submit' name='submit' value='Upload'>";
echo "</form>";
if (isset($_POST['submit']))
{                                                                        
$size_bytes = 1209600;
$file_name = $_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];
if ($file_size > $size_bytes)
{
echo "Грешка : Файла е твърде голям. Той трябва да бъде под <b>". $size_bytes / 1024 ."</b> KB.<br>";
}
else
{
$ext = end(explode(".",$file_name));
if ($ext != "rar" and $ext != "zip" and $ext != "txt")
{
echo "Грешка : Този тип файл не е позволен за качване.";
}
else
{
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); 
$chas=date("g-i-s_a"); 
$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;
$path= "upload/".$new_file_name;
move_uploaded_file($_FILES['ufile']["tmp_name"], $path);
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$_FILES['ufile']['type']."<BR/>";
}
}
}
}
?>

Това вече го тествах и работи на 100%.
 
Къде да сложа код, че да го качва и в MySQL база данни
не само в /Uploads, че да мога после да го извлека като линк..
 
PHP:
<?php              
if($fnick == "AlternativeTeam")
{
echo "<form method='POST' enctype='multipart/form-data'>";
echo "File: <input type='file' name='ufile'> <input type='submit' name='submit' value='Upload'>";
echo "</form>";
if (isset($_POST['submit']))
{                                                                        
$size_bytes = 1209600;
$file_name = $_FILES['ufile']['name'];
$file_tmp = $_FILES['ufile']['tmp_name'];
$file_size = $_FILES['ufile']['size'];
if ($file_size > $size_bytes)
{
echo "Грешка : Файла е твърде голям. Той трябва да бъде под <b>". $size_bytes / 1024 ."</b> KB.<br>";
}
else
{
$ext = end(explode(".",$file_name));
if ($ext != "rar" and $ext != "zip" and $ext != "txt")
{
echo "Грешка : Този тип файл не е позволен за качване.";
}
else
{
$random_digit=rand(0000,9999);
$fnick = "AlternativeTeam";
$data=date("j-F--Y"); 
$chas=date("g-i-s_a"); 
$new_file_name=$data."--".$chas."(".$fnick.")".$file_name;
$path= "upload/".$new_file_name;
move_uploaded_file($_FILES['ufile']["tmp_name"], $path);
// тук сложи заявката за записване в базата данни.
echo "Име :".$new_file_name."<BR/>";
echo "Големина :".$_FILES['ufile']['size'] / 1024 ."<BR/>";
echo "Тип :".$_FILES['ufile']['type']."<BR/>";
}
}
}
}
?>
 

Back
Горе