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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: сохранение графики с сервера на локальную машину

Сообщения:  [1-10]   [11-16] 

 
 автор: mihdan   (25.11.2007 в 13:18)   письмо автору
 
   для: webwizard   (25.11.2007 в 11:57)
 

Не называйте файлы зарезервированными словами (в РНР, mysql, OC, JS) такими как:
com,
count
size - избежите многих глюков при отладке.

   
 
 автор: sim5   (25.11.2007 в 12:13)   письмо автору
 
   для: webwizard   (25.11.2007 в 11:57)
 

Эта фигня как раз и называется вилкой не вставленной в розетку :))
Ну как вижу заработало? GIF-мышка скачивается и проблем нет.

   
 
 автор: webwizard   (25.11.2007 в 12:08)   письмо автору
 
   для: webwizard   (25.11.2007 в 11:57)
 

ЧУДЕСА. ВОТ сейчас всё заработало.

ОГРОМНОЕ ВАМ СПАСИБО sim5

Вы не поверите, но стоило мне переименовать файл load.php на test.php (Вы так его назвали), то всё получилось. Фантастика. Содержимое файлов load.php и test.php абсолютно идентично, бит в бит :)

Ещё раз огромное ВАМ, sim5, СПАСИБО

   
 
 автор: webwizard   (25.11.2007 в 11:57)   письмо автору
 
   для: sim5   (25.11.2007 в 11:31)
 

Вот в этом весь прикол, я не могу понять, почему на удалённом сервере и на локальном ничего не работает, если передавать значения из базы данных в качестве GET- параметра.

Если указывать напрямую имя файла, как это указали Вы, то всё работает!

Что за фигня?

   
 
 автор: sim5   (25.11.2007 в 11:31)   письмо автору
 
   для: webwizard   (25.11.2007 в 11:20)
 

Да собственно говороя, какая разница, пусть они у вас хоть в Блокноте записаны :), в конечном итоге в ссылке все равно будет явно указано имя файла. Перенесите код на реальный сервер и проверьте, должно работать.

   
 
 автор: webwizard   (25.11.2007 в 11:20)   письмо автору
 
   для: sim5   (25.11.2007 в 07:59)
 

sim5, огромное спасибо!

Ваш вариант действительно работает (я проверил только на локалке, но думаю, что и на удалённом сервере тоже всё будет нормально)

Но вот почему у меня ссылки приходят битые?

Ведь я считываю название файлов из базы данных! Я не могу писать так как Вы мне посоветовали:


echo '<a href="test.php?file=main.gif">GIF Image</a> 
<a href="test.php?file=main.jpg">JPG Image</a> 
<a href="test.php?file=main.png">PNG Image</a>';


Только так:


echo "<p><a href=?file=".$pag['name'].">Скачать</a>";


$pag['name'] - это и есть название файла, который я передаю через GET.

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

   
 
 автор: sim5   (25.11.2007 в 07:59)   письмо автору
 
   для: webwizard   (25.11.2007 в 06:05)
 

Пишите по "науке". Вот взято все ваше отдельным тестовым файлом, кроме как с правильным указанием типа и с сокращением, работает как на локалке, так и на удаленном сервере.

<?
if (isset($_GET['file'])) {
  
$name trim($_GET['file']);
  
$file_extension strtolower(substr(strrchr($name'.'), 1)); 
  
$CTypes = array (
    
'gif' => 'image/gif'
    
'png' => 'image/png'
    
'jpg' => 'image/jpg' 
  
);
  
$type $CTypes[$file_extension];
  
$file "testcatalog/".$name;
  
header("Content-Disposition: attachment; filename=".$name);
  
header("Content-Length: ".filesize($file));
  
header("Content-type: ".$type);
  echo 
file_get_contents($file);
}

echo 
'<a href="test.php?file=main.gif">GIF Image</a>
<a href="test.php?file=main.jpg">JPG Image</a>
<a href="test.php?file=main.png">PNG Image</a>'
;

По вашей ссылке файлы приходят "битые", а jpg вообще не грузится.

   
 
 автор: webwizard   (25.11.2007 в 06:05)   письмо автору
 
   для: sim5   (24.11.2007 в 18:54)
 

Спасибо за советы и помощь.

Я проверяю в блокноте первая строчка вот такая: GIF89a, а далее идёт всякая символика.

Вот попробуйте, пожалуйста, скачать gif, png и jpg-файлы. Вот адрес ссылки:

http://www.articlesworld.ru/upload/picture.php

Код скрипта, который я использую такой:



if (isset($_GET['file']))
   {

    $file = "uploads/picture/".trim($_GET['file']);
    $name = trim($_GET['file']);
    header("Content-Disposition: attachment; filename=".$name);
    header("Content-Length: ".filesize($file));
    header("Content-type: ".$file);
    echo file_get_contents($file);
   }


Ведь так всё равно не должно быть, у Вас всё работает, а у меня на локалке и на хостинге 1gb.ru ничего не работает, файлы пустые без изображения, я пробовал тип указывать и напрямую:

'gif' => 'image/gif',
'png' => 'image/png',
'jpg' => 'image/jpg'

Получаются повреждённые файлы jpg, а gif и png просто пустые. Почему? Вот мне и нужна помощь.
У меня есть две книги "PHP 5 на примерах" и "PHP 5 практика создания web-сайтов", но к сожалению там этого нет, поэтому я и пришёл на этот форум, чтобы мне помогли справиться с этой задачей.

   
 
 автор: sim5   (24.11.2007 в 18:54)   письмо автору
 
   для: webwizard   (24.11.2007 в 18:07)
 

А как помочь? Можно предполагать о неисправности, давать советы, а окажется все просто - забыли вилку в розетку вставить :)
Я спокойно получаю GIF изображение, например, прописывая как "научно" так и "вольно" тип в заголовке. Не размер графического файла, и даже не его расширение, опредеяет его содержимое, а его заголовок. Ну посмотрите, что вы получаете, это можно даже в Блокноте проверить. Вы либо загодя высылаете "битый" файл, либо получаете таковым его.
Пока вы не проверете все сами, любой совет вам, буде гаданием на кофейной гуще.

   
 
 автор: webwizard   (24.11.2007 в 18:07)   письмо автору
 
   для: sim5   (24.11.2007 в 16:54)
 

Тип определяется верно, в случае с jpg-расширением всё работает отлично, тое сть изображения и закачивается и отображается, а в случае с gif и png-расширениями закачивается всё нормально размер файла соответствует действительности, тип файла тоже верный, но при открытии изображения почему то отсутствует.

Вот уже 3 дня я никак не могу понять почему так,испробовал все возможные аврианты, поэтому надеюсь на Вашу помощь.

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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