|
|
|
|
|
для: webwizard
(25.11.2007 в 11:57)
| | Не называйте файлы зарезервированными словами (в РНР, mysql, OC, JS) такими как:
com,
count
size - избежите многих глюков при отладке. | |
|
|
|
|
|
|
|
для: webwizard
(25.11.2007 в 11:57)
| | Эта фигня как раз и называется вилкой не вставленной в розетку :))
Ну как вижу заработало? GIF-мышка скачивается и проблем нет. | |
|
|
|
|
|
|
|
для: webwizard
(25.11.2007 в 11:57)
| | ЧУДЕСА. ВОТ сейчас всё заработало.
ОГРОМНОЕ ВАМ СПАСИБО sim5
Вы не поверите, но стоило мне переименовать файл load.php на test.php (Вы так его назвали), то всё получилось. Фантастика. Содержимое файлов load.php и test.php абсолютно идентично, бит в бит :)
Ещё раз огромное ВАМ, sim5, СПАСИБО | |
|
|
|
|
|
|
|
для: sim5
(25.11.2007 в 11:31)
| | Вот в этом весь прикол, я не могу понять, почему на удалённом сервере и на локальном ничего не работает, если передавать значения из базы данных в качестве GET- параметра.
Если указывать напрямую имя файла, как это указали Вы, то всё работает!
Что за фигня? | |
|
|
|
|
|
|
|
для: 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.
Подскажите, пожалуйста, как можно избавиться от проблемы передачи битых файлов. | |
|
|
|
|
|
|
|
для: 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 вообще не грузится. | |
|
|
|
|
|
|
|
для: 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-сайтов", но к сожалению там этого нет, поэтому я и пришёл на этот форум, чтобы мне помогли справиться с этой задачей. | |
|
|
|
|
|
|
|
для: webwizard
(24.11.2007 в 18:07)
| | А как помочь? Можно предполагать о неисправности, давать советы, а окажется все просто - забыли вилку в розетку вставить :)
Я спокойно получаю GIF изображение, например, прописывая как "научно" так и "вольно" тип в заголовке. Не размер графического файла, и даже не его расширение, опредеяет его содержимое, а его заголовок. Ну посмотрите, что вы получаете, это можно даже в Блокноте проверить. Вы либо загодя высылаете "битый" файл, либо получаете таковым его.
Пока вы не проверете все сами, любой совет вам, буде гаданием на кофейной гуще. | |
|
|
|
|
|
|
|
для: sim5
(24.11.2007 в 16:54)
| | Тип определяется верно, в случае с jpg-расширением всё работает отлично, тое сть изображения и закачивается и отображается, а в случае с gif и png-расширениями закачивается всё нормально размер файла соответствует действительности, тип файла тоже верный, но при открытии изображения почему то отсутствует.
Вот уже 3 дня я никак не могу понять почему так,испробовал все возможные аврианты, поэтому надеюсь на Вашу помощь. | |
|
|
|
|