2013-05-29 1 views
0

Я использую простой скрипт для загрузки и размер загруженных изображений при сохранении прозрачности проблема сервер не распознает Jpeg изображения в то время как локальный делает здесь кодонлайн сервер не может открыть Jpeg тип изображения в то время как локальный делает

function image_resize($src, $dst, $width, $height, $crop=0){ 

if(!list($w, $h) = getimagesize($src)) return "Unsupported picture type 1!"; 

$type = strtolower(substr(strrchr($src,"."),1)); 
if($type == 'jpeg') { $type = 'jpg'; } 
switch($type){ 
case 'bmp': $img = imagecreatefromwbmp($src); break; 
case 'gif': $img = imagecreatefromgif($src); break; 
case 'jpg': $img = imagecreatefromjpeg($src); break; 
case 'png': $img = imagecreatefrompng($src); break; 
default : return "Unsupported picture type 2!"; 
} 

$new = imagecreatetruecolor($width, $height); 

// preserve transparency 
if($type == "gif" or $type == "png"){ 
imagecolortransparent($new, imagecolorallocatealpha($new, 0, 0, 0, 127)); 
imagealphablending($new, false); 
imagesavealpha($new, true); 
} 

imagecopyresampled($new, $img, 0, 0, $x, 0, $width, $height, $w, $h); 

switch($type){ 
case 'bmp': imagewbmp($new, $dst); break; 
case 'gif': imagegif($new, $dst); break; 
case 'jpg': imagejpeg($new, $dst); break; 
case 'png': imagepng($new, $dst); break; 
} 
return true; 
}  

и вот код Загрузить

require('_req/func.php');  
$img_name = mysql_real_escape_string($_FILES['main_img']['name']); 
if(strstr($img_name," ")){ 
$img_name = str_replace(" ","_",$img_name); 
} 
$num = substr(md5(mt_rand(1,999999)),0,4); 
$new_name = $num.$img_name; 

move_uploaded_file($_FILES['main_img']['tmp_name'], "../products_large/".$new_name); 
$pic_type = strtolower(strrchr($_FILES['main_img']['name'],".")); 
$pic_name = "../products_large/".$new_name; 

if (true !== ($pic_error = @image_resize($pic_name, "../products_thumb/".$new_name, 180, 180, 1))) { 
echo $pic_error; 
unlink($pic_name); 
} 
    else { 
require_once('_req/base.php'); 
$addNameQ = "update products set Product_Img = '$new_name' where Product_ID = '$id'"; 
$addNameR = mysql_query($addNameQ); 
mysql_close($connect); 
} 

и ошибка я получаю

Unsupported picture type 2! 

, который находится в строке 10 кода функции, но localhost может загружать одно и то же изображение без каких-либо проблем и при возврате $ _FILES ["main_img"] ["type"] i get image/jpeg. Любые идеи, пожалуйста?

+0

Является ли локальный сервер на основе Windows и удаленного в Unix/Linux? Если да, пожалуйста, подумайте о чувствительности к регистру в расширениях атрибутов файла – nja

+0

расширение jpg в нижнем регистре –

+0

Можете ли вы сделать эхо переменной типа, чтобы проверить, что было проанализировано на сервере? – nja

ответ

1

Попробуйте это:

 $type = strtolower(pathinfo($src, PATHINFO_EXTENSION)); 

Вы также можете хранить тип ПОС, как это (но не использовать его в любом случае)

$pic_type = ["main_img"]["type"] 
+0

не возвращает ошибку, но изображение не загружается, и страница не получает никаких данных после обновления. Единственное изменение - ошибка не отображается. –

+0

Что теперь выводится тип $? – nja

+0

он не отгоняет ничего, что я использовал, чтобы повторять его в разных местах в файле функций, но ничего вообще –

0

проблема была с помощью mysql_real_escape_string перед открытием соединения с базу данных и ее следует использовать после открытия соединения.

 Смежные вопросы

  • Нет связанных вопросов^_^