Малак проблем с ъплоуд на снимки.

joorkataa

Registered
Имам малак проблем с ето този код по долу. Значи като кача снимката "snimka1.jpg" ми копира и самото име като го качи в папката upload а аз не искам да копира името след като вече съм сложил string за преименуване на снимките , та ако може да помогнете ето го кода.


PHP:
<?php 
echo '<center>'; 
if ($_POST['upload']) { 
			$string = "0123456789qwertyuiopasdfghjklzxcvbnm";
			$new_string = str_shuffle($string);
$putq = 'upload/'.$new_string.($_FILES['ufile']['name']); 
if (@copy($_FILES['ufile']['tmp_name'], $putq)) { 
list($width, $height, $type) = getimagesize("$putq"); 
if ($width > 13530) { 
echo "Снимката е прекалено голяма. Снимката не е качена."; 
unlink($putq); 
} 
else { 
function upload_small($tmp_name,$file_type,$path_small){ 
if(!file_exists($path_small)){ 
if($file_type=="image/pjpeg" or $file_type=="image/jpeg" or $file_type=="image/gif" or $file_type=="image/x-png" or $file_type=="image/png"){//проверка дали файлът е картинка 
list($width,$height) = getimagesize($tmp_name); 
define("WIDTH","150"); 
define("HEIGHT","112"); 
if($width<WIDTH and $height<HEIGHT){ 
move_uploaded_file($tmp_name,$path_small); 
}elseif($width>=WIDTH){ 
$new_width= WIDTH; 
$new_height= (int) ($height*$new_width)/$width; 
if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){ 
$imagecreatefrom="imagecreatefromjpeg"; 
}elseif($file_type=="image/gif"){ 
$imagecreatefrom="imagecreatefromgif"; 
}elseif($file_type=="image/x-png" or $file_type=="image/png"){ 
$imagecreatefrom="imagecreatefrompng"; 
} 
$image_p=imagecreatetruecolor($new_width, $new_height); 
$image=$imagecreatefrom($tmp_name); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
imagejpeg($image_p, $path_small, 100); 
}elseif($height>=HEIGHT){ 
$new_height= HEIGHT; 
$new_width= (int) ($width*$new_height)/$height; 
if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){ 
$imagecreatefrom="imagecreatefromjpeg"; 
}elseif($file_type=="image/gif"){ 
$imagecreatefrom="imagecreatefromgif"; 
}elseif($file_type=="image/x-png" or $file_type=="image/png"){ 
$imagecreatefrom="imagecreatefrompng"; 
} 

$image_p=imagecreatetruecolor($new_width, $new_height); 
$image=$imagecreatefrom($tmp_name); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
imagejpeg($image_p, $path_small, 100); 
} 
}else{ echo 'Файлът не е картинка!'; exit; } 
}else{ echo 'Такъв файл вече съществува!'; exit; } 
} 
$file_name=$_FILES['ufile']['name']; 
$tmp_name=$_FILES['ufile']['tmp_name']; 
$file_type=$_FILES['ufile']['type']; 
$path_small="upload/small/".$new_string.(strtolower($file_name)); 
upload_small($tmp_name,$file_type,$path_small); 
echo '<br><img src="'.$path_small.'" alt=""><br>'; 
echo '<br>'.URL.$path_small.'<br>'; 
$catid = htmlspecialchars($_POST['catid']);





$res = mysql_query("INSERT INTO files (`pic`, `pic_small`, `catid`, `author`, `visitors`, `votes_up`, `votes_down`, `subject`) VALUES ('$putq', '$path_small', '$catid', '1', '0', '0', '0', 'None')") or die(mysql_error()); 
echo "Снимката е добавена успешно.<br> 
<a href='pro.php?page=addpic'>Обратно</a>"; 
} 
} else {echo "Снимката не е качена";} 
} 
else 
{ 
if(!function_exists("gd_info")){ 
echo 'GD Graphics Library не е инсталирана на този сървър!'; 
}else{ 
echo ' 
<div id="main">
<div class="left">
<div id="menu_head">Качване на файл</div>
<div id="menu_body">
<form method="post" action="" enctype="multipart/form-data">
<p>
<label><b>Избери снимка:</b><br /></label>
<input type="file" name="ufile" class="input" />
</p>


<label for="sales"><b>Избери категория:<br /></b> </label>
<select style="background-color: #ececec;" id="sales" name="catid">
<option value="10">test1</option>
<option value="20">test2</option>
</select>

<br /><br />
<p><input type="submit" class="submit" name="upload" value="Качи" /></p>
</form>

'; 
} 
} 
echo ' 
</center> 
</body> 
</html> 
'; 
?>
 
Пробвай да промениш това:

PHP:
$putq = 'upload/'.$new_string.($_FILES['ufile']['name']);

с това:

PHP:
$format = end(explode(".",$_FILES['ufile']['name']));
$putq = "upload/$new_string.$format";

И виж дали ще стане.

EDIT:

За второто замени това:

PHP:
$path_small="upload/small/".$new_string.(strtolower($file_name));

с това:

PHP:
$formatb = end(explode(".",$file_name));
$path_small="upload/small/$new_string.formatb";
 

Back
Горе