[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: На сервер не грузятся картинки с русскими буквами
tureg1
На сервер не грузятся картинки с русскими буквами в названии файла.

<script type="text/javascript" >
$(function(){
var btnUpload=$('#upload');
var status=$('#status');

new AjaxUpload(btnUpload, {
action: 'upload-file_albums.php?ttt=<? echo "$id_album";?>',
name: 'uploadfile',

onSubmit: function(file, ext){
if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
// extension is not allowed
status.text('Only JPG, PNG or GIF files are allowed');
return false;
}
status.text('Загрузка...');
},
onComplete: function(file, response){
//On completion clear the status
status.text('');
//Add uploaded file to list
if(response && response != "error"){
$('<li></li>').appendTo('#files').html('<img src="../im/th/'+response+'" alt="" /><br /><br /><font face=verdana size=1><b>Загружено</b></font>').addClass('success');
} else{
$('<li></li>').appendTo('#files').text(file).addClass('error');
}
}
}
);

});
</
script>



<div id="mainbody" >


<div
id="upload" ><span>Загрузить еще фото<span></div><span id="status" ></span>

<ul
id="files" ></ul>
</div>




upload-file_albums.php
$image_name = randomPassword(10);

$data = $_FILES['uploadfile']['name'];
$id_album = $_GET['ttt'];
$date_comp = date("Y-m-d H:i:s");

$uploaddir = './photo/';
$file = $uploaddir . basename($_FILES['uploadfile']['name']);
move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file);


if (resize("photo/$data", "../im/$image_name.jpg", 600, 0)){
resize("photo/$data", "../im/sm/$image_name.jpg", 0, 200);
crop("photo/$data", "photo/th/$image_name.jpg");
resize("photo/th/$image_name.jpg", "../im/th/$image_name.jpg", 100, 100);



echo "$image_name.jpg";
} else {
echo "error";
}


include ("connectdb.php");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$query1 = "INSERT INTO `albums_photos` VALUES ('NULL', '$id_album', '$image_name.jpg', '$id_album', '$commentik', '$date_comp', 'ooo');";




$result1=mysql_query($query1);


//----------------------------------------------------------------------------------
function resize($file_input, $file_output, $w_o, $h_o, $percent = false) {
list($w_i, $h_i, $type) = getimagesize($file_input);
if (!$w_i || !$h_i) {
echo 'Невозможно получить длину и ширину изображения';
return;
}
$types = array('','gif','jpeg','png');
$ext = $types[$type];
if ($ext) {
$func = 'imagecreatefrom'.$ext;
$img = $func($file_input);
} else {
echo 'Некорректный формат файла';
return;
}
if ($percent) {
$w_o *= $w_i / 100;
$h_o *= $h_i / 100;
}
if (!$h_o) $h_o = $w_o/($w_i/$h_i);
if (!$w_o) $w_o = $h_o/($h_i/$w_i);

$img_o = imagecreatetruecolor($w_o, $h_o);
imagecopyresampled($img_o, $img, 0, 0, 0, 0, $w_o, $h_o, $w_i, $h_i);
if ($type == 2) {
return imagejpeg($img_o,$file_output,100);
} else {
$func = 'image'.$ext;
return $func($img_o,$file_output);
}
}


function randomPassword($length, $allow = "abcdefghijklmnopqrstuvwxyz0123456789") {
$i = 1;
while ($i <= $length) {
$max = strlen($allow)-1;
$num = rand(0, $max);
$temp = substr($allow, $num, 1);
$ret = $ret . $temp;
$i++;
}
return $ret;
}

//----------------------------- Вырезание квадрата
function crop($file_input, $file_output, $crop = 'square',$percent = false) {
list($w_i, $h_i, $type) = getimagesize($file_input);
if (!$w_i || !$h_i) {
echo 'Невозможно получить длину и ширину изображения';
return;
}
$types = array('','gif','jpeg','png');
$ext = $types[$type];
if ($ext) {
$func = 'imagecreatefrom'.$ext;
$img = $func($file_input);
} else {
echo 'Некорректный формат файла';
return;
}
if ($crop == 'square') {
$min = $w_i;
if ($w_i > $h_i) $min = $h_i;
$w_o = $h_o = $min;
} else {
list($x_o, $y_o, $w_o, $h_o) = $crop;
if ($percent) {
$w_o *= $w_i / 100;
$h_o *= $h_i / 100;
$x_o *= $w_i / 100;
$y_o *= $h_i / 100;
}
if ($w_o < 0) $w_o += $w_i;
$w_o -= $x_o;
if ($h_o < 0) $h_o += $h_i;
$h_o -= $y_o;
}
$img_o = imagecreatetruecolor($w_o, $h_o);
imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o);
if ($type == 2) {
return imagejpeg($img_o,$file_output,100);
} else {
$func = 'image'.$ext;
return $func($img_o,$file_output);
}
}


Картинки содержащие в названии литинские буквы, обрабатываются нормально

подозревая что дело где то здесь
$uploaddir = './photo/'; 
$file = $uploaddir . basename($_FILES['uploadfile']['name']);
move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file);


потому как в папку photo файл с русскими буквами попадает в эту папку без названия, а только расширение .jpg
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.