Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> На сервер не грузятся картинки с русскими буквами
tureg1  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 152
Пользователь №: 21751
На форуме: 6 лет, 7 месяцев, 24 дня
Карма:




На сервер не грузятся картинки с русскими буквами в названии файла.

<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
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
phz  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Будьте добрее, когда это возможно. А это возможно всегда.
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 776
Пользователь №: 16747
На форуме: 7 лет, 10 месяцев, 6 дней
Карма: 28

Трезвый :
3 года, 11 месяцев, 14 дней


Плохая практика грузить файлы с русскими названием без резкой причины. Переведите названия файла через функцию translate

Например переносить сайты где русские файлы - вызывают затруднения на некоторых хостингах. Или бекапы которые делают хостинги автоматом - ломают весь этот русский в крякозяблы. И когда у клиента больше 10 000 фоток таких, становиться весело.
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
[x] Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









решил задачу таким способом:

$image_name = randomPassword(10);
$data = "$image_name.jpg";

$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'],$uploaddir . $data);


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);
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tureg1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 152
Пользователь №: 21751
На форуме: 6 лет, 7 месяцев, 24 дня
Карма:




Мой пост выше, забыл авторизоваться. А вообще ничего страшного в том, что картинки с расширениями png gif, вдруг становятся jpg. (не конвертацией, а именно тупым переименование расширения)Могут ли возникнуть какие нибудь проблемы?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
phz  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Будьте добрее, когда это возможно. А это возможно всегда.
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 776
Пользователь №: 16747
На форуме: 7 лет, 10 месяцев, 6 дней
Карма: 28

Трезвый :
3 года, 11 месяцев, 14 дней


Цитата (tureg1 @ 14.02.2016 - 14:35)
Мой пост выше, забыл авторизоваться. А вообще ничего страшного в том, что картинки с расширениями png gif, вдруг становятся jpg. (не конвертацией, а именно тупым переименование расширения)Могут ли возникнуть какие нибудь проблемы?

Современные браузеры на это внимания не обратят. Но мало ли где может возникнуть проблема. И зачем ёё создавать. В php можно узнать расширения файла и подставлять. Например:

return end(explode(".", $filename));

PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса