Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка картинок
 
 автор: Rustamich   (23.07.2008 в 10:00)   письмо автору
 
 

Вот код:

<?
$dname
="../images/";
 
$img = @$_FILES['img']['name'];
if(
trim($img) != '') {
  
$uploaddir $dname.$img;
  
move_uploaded_file($_FILES['img']['tmp_name'],"$uploaddir");    
}
?>

В форме стоит enctype="multipart/form-data"
Имя файла с изображением передается и загружается на сервер,
но при просмотре в браузере изображение не отображается, а в свойствах пишет неизвестный тип и размер.
Подскажите, что нужно исправить. Загружаю только gif или jpg.

   
 
 автор: Trianon   (23.07.2008 в 11:12)   письмо автору
 
   для: Rustamich   (23.07.2008 в 10:00)
 

Необходимо анализировать поле $_FILES['img']['error']
согласно http://www.php.net/manual/ru/features.file-upload.php и http://www.php.net/manual/en/features.file-upload.errors.php

   
 
 автор: Rustamich   (23.07.2008 в 14:28)   письмо автору
 
   для: Trianon   (23.07.2008 в 11:12)
 

Я проверил весь массив $_FILES при передачи изображения, но всё передается нормально, и имя, и размер, и тип. Почему загружается на сервер без типа? а когда я копирую загруженное изображение с сервера к себе на комп, при просмотре пишет: "Ошибка при построении изображения".
Кто знает в чем проблема? я уже и copy пробовал, тоже самое...

   
 
 автор: Axxil   (23.07.2008 в 14:48)   письмо автору
 
   для: Rustamich   (23.07.2008 в 14:28)
 

Файлы, которые вы загружаете имеют кирилические символы в имени?
Попробуйте в качестве теста при копировании файла на сервер указать стандартное имя. например:
$uploaddir = $dname.'testimage.jpg'; 


И вот здесь совсем не обязательно переменную в кавычки брать:
move_uploaded_file($_FILES['img']['tmp_name'],"$uploaddir");

(Это к проблеме не относится, но так, на будущее)

   
 
 автор: Rustamich   (23.07.2008 в 15:20)   письмо автору
 
   для: Axxil   (23.07.2008 в 14:48)
 

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

   
 
 автор: Axxil   (23.07.2008 в 15:41)   письмо автору
 
   для: Rustamich   (23.07.2008 в 15:20)
 

Очень странно.
Попробуйте:
<?
$dname
="../images/";
 
$img = @$_FILES['img']['name'];
 echo 
"<pre>";
 
print_r($_FILES['img']);
if(
trim($img) != '') {
  
$uploaddir $dname.$img;
  
move_uploaded_file($_FILES['img']['tmp_name'],"$uploaddir");    
}
?> 

И в дампе массива $_FILES обратите внимание на поля type и error

А лучше весь дамп сюда скопируйте.

   
 
 автор: Rustamich   (23.07.2008 в 16:05)   письмо автору
 
   для: Axxil   (23.07.2008 в 15:41)
 

Всё сделал как написали, хотя это я уже делал. Вот дамп:

Array
(
[name] => ugolok_m.gif
[type] => image/gif
[tmp_name] => /home/rtkz1/tmp/phpK1XYkv
[error] => 0
[size] => 2267
)

Как я и говорил, всё передается нормально, в чем может быть проблема?

   
 
 автор: Axxil   (23.07.2008 в 16:07)   письмо автору
 
   для: Rustamich   (23.07.2008 в 16:05)
 

а с jpg-ами такая же фигня?

   
 
 автор: Rustamich   (23.07.2008 в 16:17)   письмо автору
 
   для: Axxil   (23.07.2008 в 16:07)
 

Таже история. Есть одно отличие, которое я только что заметил.
Размер изображения, именно высота и ширина у jpg-файла = 0x0, а вот у gif = 8336x8210.
Мистика!!!

   
 
 автор: Axxil   (23.07.2008 в 16:42)   письмо автору
 
   для: Rustamich   (23.07.2008 в 16:17)
 

Да уж...
А другие типы файлов нормально заливаются? Попробуйте закинуть какой-нить архив или doc и потом с сервера вытащить по ftp. Останется он целым?

   
 
 автор: Rustamich   (23.07.2008 в 21:13)   письмо автору
 
   для: Axxil   (23.07.2008 в 16:42)
 

Я сейчас уже не на работе. Завтра попробую. Спасибо за беспокойство!
Возможно что-нибудь с настройками на сервере? Что может быть?

   
 
 автор: Rustamich   (24.07.2008 в 08:24)   письмо автору
 
   для: Axxil   (23.07.2008 в 16:42)
 

В общем решил я проблему, оказалось точно, проблемы с хостером.
Я прописал в файле .htaccess - CharsetRecodeMultipartForms off и всё заработало
как часики!
Всё равно, спасибо за попытку помочь!

   
 
 автор: mihdan   (24.07.2008 в 11:10)   письмо автору
 
   для: Rustamich   (24.07.2008 в 08:24)
 

Наверняка русский апач стоит

   
 
 автор: sim5   (24.07.2008 в 11:21)   письмо автору
 
   для: mihdan   (24.07.2008 в 11:10)
 

Не наверняка, а точно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования