|
|
|
| Как выгрузить с сайта картинки например move_uploaded_file() и copy() это загрузка на сайт, а как выгрузить и сохранить в какую-нибудь папку? | |
|
|
|
|
|
|
|
для: algoritm2
(04.02.2015 в 15:52)
| | Выбрать папку для помещения картинки или иного может только клиент, то есть пользователь вашего сайта, как впрочем и "захотеть" что-то сохранить. По "желанию сервера" этого сделать нельзя. | |
|
|
|
|
|
|
|
|
для: lightning.say
(04.02.2015 в 16:11)
| | Не обязательно, отдать документ можно же и по прямой ссылке. | |
|
|
|
|
|
|
|
для: confirm
(04.02.2015 в 16:14)
| | Я в курсе, что можно передать файл через заголовок, где нужно указать Content-Desposition, но мне нужно сразу несколько файлов передать одновременно и желательно чтобы они копировались, без предупреждения о загрузке файла, все файлы являются картинками | |
|
|
|
|
|
|
|
для: algoritm2
(04.02.2015 в 19:07)
| | Вы же загружали себе что-то с сервера, значит знаете, что вы и только вы определяете куда поместить нечто, сервер к этому отношения не имеет.
Без предупреждения тоже ничего не получится, ибо выбор загрузки, это сперва диалог, а только затем действие. Исключение могут составлять документы, которые браузер может открыть в своем окне, например текстовые файлы, js, картинки...
Одновременно и сразу несколько файлов передать браузеру не получится, в том смысле, чтобы он начал закачки каждого, а передать последовательно, это серверу задачу ставить надо - следить за отдачей, ставить в поток следующий, и так пока все не отдано.
А почему не упаковать на сервере в единый архив и отдать архивом нужные файлы? | |
|
|
|
|
|
|
|
для: confirm
(04.02.2015 в 19:36)
| | В общем суть заключается а том, что сначало идет выгрузка данных с сайта в excel которую я уже написал, а потом картинки которые отображаются на сайте и упаковать их ни как не получится | |
|
|
|
|
|
|
|
для: algoritm2
(04.02.2015 в 19:40)
| | Ну почему же не получается - в один архив можно упаковать и ваш excel файл и картинки. Более того, если требуется обновление, то архиватор будет обновлять/добавлять файлы этого архива.
Нужно только грамотный подход к задаче, то есть excel файл, это не где-то само по себе готовится, а картинки вообще другая песня. Все должно быть неким сервисом в админке к примеру, где из необходимых данных готовится этот документ, затем этот документ пакуется в архив с добавлением изображений.
PS. Если ваш документ действительно соответствует формату excel, то он может и в себе хранить изображения. | |
|
|
|
|
2.9 Кб |
|
|
для: algoritm2
(04.02.2015 в 19:40)
| | А это пример. Предполагается, что в директории, из которой запускается этот пример, находятся три изображения: red.gif, green.gif и blue.gif. Документ, то есть его содержимое, это просто строка $data. У вас же это должна быть строка, которая получается при формировании вашего документа. То есть добавление вашего документа будет не из файла лежащего по какому либо пути (хотя и это можно), а из строки в которую "пакуется" ваш документ (пример для UTF). Таким образом отпадает необходимость в создании промежуточного файла ради создания архива. Файлами в архив будут добавляться только изображения.
<?
function archiveFile($path, $name, $data=null) {
$zip = new ZipArchive();
if($zip->open($path, ZIPARCHIVE::CREATE)===true) {
//помещение в архив данных из строки
//конвертирование в CP866 нужно для того, чтобы русские имена файлов помещенных в архив были корректными
if($data) $zip->addFromString(iconv("UTF-8","CP866", $name), $data);
//помещение в архив файлов
else $zip->addFile(realpath($name), basename($name));
$zip->close();
return null;
} else return $zip; //если ошибка, возвращаем описание ошибки
}
$path = 'doc.zip'; //задаем путь и имя архива
$name = 'документ.txt'; //имя документа, под которым будут помещены данные из строки
$data = 'Содержание документа'; //содержание документа
if(!$e = archiveFile($path, $name, $data)) {
//если упаковка документа не вернула ошибку, добавляем в архив файлы изображений
foreach(glob('*.gif') as $f) archiveFile($path, $f);
} else echo $e; //иначе вывод ошибки
|
В прикреплении результат работы этого примера | |
|
|
|
|