Проблем с "Upload"Скрипт

chepa

Registered
Значи качвам файл няма проблеми всичко е ОК качва ми го под името "haha" Примерно , но като кача 2ри файл полето което ми е в MySQL
"File" показва че има 2 файла с 2 еднакви имена а 2рия файл, които качвам е различен от първия но първия придобива името на 2рия незнам дали ме разбрахте ама няма по добре обеснение ...

Ето код:

Код:
<?php
if($_POST['submit']){
$ok=1;
$file = "Upload/" . basename($_FILES['uploaded']['name']); //Директорията за качване
if(file_exists($file))
{
	$ok = 0;
	echo 'Ima fail s takova ime ve4e.';
}


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

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

if(!in_array(end(explode(".", $_FILES['uploaded']['name'])), $allowedExtensions))
{
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['[code]uploaded
']['tmp_name'], $file))
{
$Movie = htmlspecialchars($_POST['Film']);
$Year = htmlspecialchars($_POST['Year']);
$Language = htmlspecialchars($_POST['Language']);
$FPS = htmlspecialchars($_POST['FPS']);
$Wall = htmlspecialchars($_POST['Wall']);
$Information = htmlspecialchars($_POST['Information']);
$username = $_SESSION['username'];
$target = "Upload/" . basename($_FILES['uploaded']['name']);
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded";
$query = mysql_query("INSERT INTO `subtitles` (`Movie`,`Year`,`Language`,`FPS`,`Wall`,`Information`,`Username`) VALUES ('$Movie', '$Year', '$Language', '$FPS', '$Wall', '$Information', '$username') ") or die(mysql_error());
mysql_query( "UPDATE subtitles SET File = '$target' WHERE username = '$username'");
}
else
{
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно
}
}
}
?>[/code]
 
проблема ти според мен е тук
if(move_uploaded_file($_FILES[uploaded']['tmp_name'], $file))
$_FILES['uploaded']['name'] така вземаш името на файла заедно с разширението
и ако нямаш мултиУплоуд го направи така
$filename= time()."_". $_FILES['uploaded']['name'];
функцията time взема сегашното време и е невъзможно да се повтарят имената
 
macmen каза:
проблема ти според мен е тук
if(move_uploaded_file($_FILES[uploaded']['tmp_name'], $file))
$_FILES['uploaded']['name'] така вземаш името на файла заедно с разширението
и ако нямаш мултиУплоуд го направи така
$filename= time()."_". $_FILES['uploaded']['name'];
функцията time взема сегашното време и е невъзможно да се повтарят имената

$filename= time()."_". $_FILES['uploaded']['name'];


Това къде точно да го сложа сложих го на 2 - 3 места няма разлика ако може да го сложих в кода явно аз не схванах ..
 
Код:
<?php
if($_POST['submit']){
$ok=1;
$file = "Upload/" . basename($_FILES['uploaded']['name']); //Директорията за качване
if(file_exists($file))
{
   $ok = 0;
   echo 'Ima fail s takova ime ve4e.';
}


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

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

if(!in_array(end(explode(".", $_FILES['uploaded']['name'])), $allowedExtensions))
{
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['[code]uploaded
']['tmp_name'], $file))
{
$Movie = htmlspecialchars($_POST['Film']);
$Year = htmlspecialchars($_POST['Year']);
$Language = htmlspecialchars($_POST['Language']);
$FPS = htmlspecialchars($_POST['FPS']);
$Wall = htmlspecialchars($_POST['Wall']);
$Information = htmlspecialchars($_POST['Information']);
$username = $_SESSION['username'];
$target = "Upload/" . time()."_". basename($_FILES['uploaded']['name']);
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded";
$query = mysql_query("INSERT INTO `subtitles` (`Movie`,`Year`,`Language`,`FPS`,`Wall`,`Information`,`Username`) VALUES ('$Movie', '$Year', '$Language', '$FPS', '$Wall', '$Information', '$username') ") or die(mysql_error());
mysql_query( "UPDATE subtitles SET File = '$target' WHERE username = '$username'");
}
else
{
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно
}
}
}
?>[/code]
 
От твоя скрипт ми дава че има проблем при качването ... неще да го качи

There was a problem uploading your file ...
 
Я прой така

Код:
<?php
if($_POST['submit']){
$ok=1;
$file = "Upload/" . basename($_FILES['uploaded']['name']); //Директорията за качване
if(file_exists($file))
{
   $ok = 0;
   echo 'Ima fail s takova ime ve4e.';
}


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

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

if(!in_array(end(explode(".", $_FILES['uploaded']['name'])), $allowedExtensions))
{
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['[code]uploaded
']['tmp_name'], $file))
{
$Movie = htmlspecialchars($_POST['Film']);
$Year = htmlspecialchars($_POST['Year']);
$Language = htmlspecialchars($_POST['Language']);
$FPS = htmlspecialchars($_POST['FPS']);
$Wall = htmlspecialchars($_POST['Wall']);
$Information = htmlspecialchars($_POST['Information']);
$username = $_SESSION['username'];
$target = "Upload/" . basename(time().$_FILES['uploaded']['name']);
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded";
$query = mysql_query("INSERT INTO `subtitles` (`Movie`,`Year`,`Language`,`FPS`,`Wall`,`Information`,`Username`) VALUES ('$Movie', '$Year', '$Language', '$FPS', '$Wall', '$Information', '$username') ") or die(mysql_error());
mysql_query( "UPDATE subtitles SET File = '$target' WHERE username = '$username'");
}
else
{
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно
}
}
}
?>[/code]
 
3213.jpg
 
Промени този ред:
Код:
if(move_uploaded_file($_FILES['[code]uploaded
']['tmp_name'], $file))
[/code]

на това:
Код:
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $file))

явно някакси са се вмъкнали code таговете от форума
 
ЕДИТ: Оправих се :), мерси на вички които се отзоваха

Оправих се като махнах скрипта в червено:

$query = mysql_query("INSERT INTO `subtitles` (`Movie`,`Year`,`Language`,`FPS`,`Wall`,`Information`,`Username`, `File`) VALUES ('$Movie', '$Year', '$Language', '$FPS', '$Wall', '$Information', '$username', '$file') ") or die(mysql_error());
mysql_query( "UPDATE subtitles SET File = '$file' WHERE username = '$username'");
 

Back
Горе