Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сохранение изображения у пользователя

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Albertino
Отправлено: 22 Декабря, 2011 - 11:16:37
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Ситуация следующая:
Допустим есть изображение располагающееся в /img/img_1.jpg
и нужно чтоб переходя по ссылке <a href="">сохранить</a> у пользователя спрашивалось сохранить изображение, а не просто выводилось бы на экран
сделал так:
<a href="file.php?cont=/img/img_1.jpg">сохранить</a>
a в php
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['cont']) && $_GET['cont'] != ""){
  2.   header("Content-type: image/jpeg");
  3.   header("Content-Disposition: attachment; filename=".$_GET['cont']);
  4.   print(file_get_contents($_SERVER['SERVER_NAME'].$_GET['cont']));
  5. }

но сохраняется пустой файл, как сделать правильно?
 
 Top
EuGen Администратор
Отправлено: 22 Декабря, 2011 - 11:23:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. header('Content-Description: File Transfer');
  2. header('Content-Type: application/octet-stream');
  3. header("Content-Disposition: attachment; filename=".$_GET['cont']);
  4. header('Content-Transfer-Encoding: binary');
  5. header('Expires: 0');
  6. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  7. header('Pragma: public');
  8. header('Content-Length: ' . filesize($_SERVER['SERVER_NAME'].$_GET['cont']));
  9. readfile($_SERVER['SERVER_NAME'].$_GET['cont']);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Albertino
Отправлено: 22 Декабря, 2011 - 11:57:30
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




EuGen,
Попробовал так сделать, но почему то все равно изображение пустое

а вот убрал строку header('Content-Length: ' . filesize($file)); и все заработало, не может сосчитать размер файла

EuGen, спасибо большое

(Отредактировано автором: 22 Декабря, 2011 - 12:05:58)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB