Не просматриваются закаченные картинки на сервере

Friendik123

Новичок
Не просматриваются закаченные картинки на сервере

Приветствую!
Проблема в следующем - перепробовал различные скрипты и коды, но результат один и тот же: закаченные изображения не просматриваются ни одним графическим редактором, пишут "Просмотр невозможен", хотя размер показывается, если закачиваю текстовые файлы, то всё нормально, текст просматривается. Единственный момент, хотя может и не показатель - я проверяю всё это на бесплатном хостинге
 

DiMA

php.spb.ru
Команда форума
напиши минимальный по размеру пример закачки и просмотра, изложи его здесь
 

Friendik123

Новичок
Ну вот например, такой скрипт:

PHP:
<?php  
$uploaddir = '<тут корректный полный путь>';  
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);   

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) 
{      
  print "Загрузка файла успешна\n";      
  print_r($_FILES);  
} 
else 
{      
  print "Ошибка\n";      
  print_r($_FILES);  
}  
?>
Я проверял и на других - но эффект такой же - закачка успешна (т.е. картинка загрузилась на сервер в указанную мной папку), а картинка не просматривается, пишет "Просмотр невозможен"
 

Активист

Активист
Команда форума
PHP:
//..
//..
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) 
{
  chmod($uploadfile, 0644); // set permissions to access web server      
  print "Загрузка файла успешна\n";      
  print_r($_FILES);  
}
 

Friendik123

Новичок
Автор оригинала: findnext
Friendik123
в папке физически картинки существуют?
Конечно присутствуют, иначе бы я не задавал данный вопрос, а рылся бы в коде. Размер показывается в байтах, а просмотреть нельзя. И это только с картинками, с текстомвыми файлами проблем нет

Лично моё подозрение - проблема в бесплатном хостинге
 

Активист

Активист
Команда форума
Результаты вот этого в студию
PHP:
<?php  
ini_set("display_errors", "on");
error_reporting(E_ALL);

$uploaddir = '<тут корректный полный путь>';  
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);   

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) 
{      
  print "Загрузка файла успешна\n";      
  print_r($_FILES);  
  $md5_1 = md5_file($_FILES['userfile']['tmp_name']);
  $md5_2 = md5_file($uploadfile);
  $md5_3 = md5_file("/path/to/uplloaded/image/from/FTP"); // тут указа путь до этой же картинки, но загруженной через FTP

  echo "Uploaded MD5 sum's: Original: {$md5_3}, Tempory  file: {$md5_1}, uploaded file: {$md5_2}";

} 
else 
{      
  print "Ошибка\n";      
  print_r($_FILES);  
}  
?>
 

dimagolov

Новичок
Активист, а что, проверять ошибки закачки перед тем, как делать move_uploaded_file уже не модно?
 

DiMA

php.spb.ru
Команда форума
закачай картинку своим скриптом
потом по ФТП скачай себе на комп, обратно
с помощью fc /b old.jpg new.jpg сравни побайтово эти 2 файла и покажи результат от fc
 

Friendik123

Новичок
Вопрос в том, где проблема - в скрипте или в сервере?
Скрипты пользовал разные, всё тоже самое
 

Активист

Активист
Команда форума
Friendik123
Ты мой пост видел?

-~{}~ 12.03.09 11:51:

dimagolov
Нам же утверждают, что все впорядке :)))
 

Friendik123

Новичок
Вот результат скрипта Активиста (с функциями md5):

Загрузка файла успешна

Array ( [file1] => Array ( [name] => server1.jpg [type] => image/jpeg [tmp_name] => /var/tmp/phpJ2dgaE [error] => 0 [size] => 68099 ) )

Warning: md5_file(): Unable to open file in <путь>/test.php on line 48

Uploaded MD5 sum's:
Original: 458c309ceda3243ee75ab287d830dfe7,
Tempory file: ,
uploaded file: 6f05fdae9d3ef5c8b5fbd2a30596a1ba

Темп файла как будто нет
Если я конечно всё правильно сделал, закачал файл через ФТП, обозвал немного по другому (это в Original) и закачал тот же файл с помощью скрипта (uploaded file)
 

Активист

Активист
Команда форума
Файлы разные.

Заливаются либо битые файлы либо .

(По поводу временного - забыл, что временный удаляется после move_uploaded_files).

Но это не так уж и критично.

Теперь сделай как сказал DiMA
 

Friendik123

Новичок
Сделал как Dima сказал - значит файлы и правда различаются, а именно, где в оригинале в HEX стоят 00, файл который закачивается скиптом ставит везде почему-то замену 20 вместо этих 00, поэтому и нельзя просмотреть файл, НО вопрос почему так??

Вот кусок результата от fc:
0000F12E: 00 20
0000F144: 00 20
0000F153: 00 20
0000F179: 00 20
0000F1C0: 00 20
0000F214: 00 20
0000F223: 00 20
0000F26D: 00 20
0000F279: 00 20
0000F281: 00 20
0000F286: 00 20
0000F28A: 00 20
0000F2E3: 00 20
0000F2F2: 00 20
0000F308: 00 20
0000F317: 00 20
0000F334: 00 20
0000F343: 00 20
0000F359: 00 20
 

dimagolov

Новичок
или сухосин, или русский апач (скорее первое, mod_suhosin). доставай суппорт хостера, это их бок.

п.с. выходит что для каждого клиента у них отдельный апач, раз никто кроме тебя не жалуется. может ты и конфиг апача можешь править?
 

Friendik123

Новичок
Автор оригинала: dimagolov
или сухосин, или русский апач. доставай суппорт хостера, это их бок.

п.с. выходит что для каждого клиента у них отдельный апач, раз никто кроме тебя не жалуется. может ты и конфиг апача можешь править?
Я сразу так и подумал, что косяк хостера, потому что я на бесплатном разместился. Завтра перезалью на платный хостинг. Вот там и будет видно
 

DiMA

php.spb.ru
Команда форума
была такая проблема лет 10 назад в русском апаче
и опция есть, чтобы вылечить.. погугли или у меня на сайте поищи .-)
 

Friendik123

Новичок
Автор оригинала: DiMA
была такая проблема лет 10 назад в русском апаче
и опция есть, чтобы вылечить.. погугли или у меня на сайте поищи .-)
Спасибо за совет :) но апач на том серваке править нельзя :(
 

DiMA

php.spb.ru
Команда форума
те сказано, что делать? делай.
возможно опция подойдет для htaccess или тупому одмину поможет понять твой вопрос
 
Сверху