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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Выгрузка с сайта картинок
 
 автор: algoritm2   (04.02.2015 в 15:52)   письмо автору
 
 

Как выгрузить с сайта картинки например move_uploaded_file() и copy() это загрузка на сайт, а как выгрузить и сохранить в какую-нибудь папку?

  Ответить  
 
 автор: confirm   (04.02.2015 в 16:08)   письмо автору
 
   для: algoritm2   (04.02.2015 в 15:52)
 

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

  Ответить  
 
 автор: lightning.say   (04.02.2015 в 16:11)   письмо автору
 
   для: algoritm2   (04.02.2015 в 15:52)
 

http://php.net/manual/en/function.readfile.php

  Ответить  
 
 автор: confirm   (04.02.2015 в 16:14)   письмо автору
 
   для: lightning.say   (04.02.2015 в 16:11)
 

Не обязательно, отдать документ можно же и по прямой ссылке.

  Ответить  
 
 автор: algoritm2   (04.02.2015 в 19:07)   письмо автору
 
   для: confirm   (04.02.2015 в 16:14)
 

Я в курсе, что можно передать файл через заголовок, где нужно указать Content-Desposition, но мне нужно сразу несколько файлов передать одновременно и желательно чтобы они копировались, без предупреждения о загрузке файла, все файлы являются картинками

  Ответить  
 
 автор: confirm   (04.02.2015 в 19:36)   письмо автору
 
   для: algoritm2   (04.02.2015 в 19:07)
 

Вы же загружали себе что-то с сервера, значит знаете, что вы и только вы определяете куда поместить нечто, сервер к этому отношения не имеет.
Без предупреждения тоже ничего не получится, ибо выбор загрузки, это сперва диалог, а только затем действие. Исключение могут составлять документы, которые браузер может открыть в своем окне, например текстовые файлы, js, картинки...
Одновременно и сразу несколько файлов передать браузеру не получится, в том смысле, чтобы он начал закачки каждого, а передать последовательно, это серверу задачу ставить надо - следить за отдачей, ставить в поток следующий, и так пока все не отдано.
А почему не упаковать на сервере в единый архив и отдать архивом нужные файлы?

  Ответить  
 
 автор: algoritm2   (04.02.2015 в 19:40)   письмо автору
 
   для: confirm   (04.02.2015 в 19:36)
 

В общем суть заключается а том, что сначало идет выгрузка данных с сайта в excel которую я уже написал, а потом картинки которые отображаются на сайте и упаковать их ни как не получится

  Ответить  
 
 автор: confirm   (04.02.2015 в 19:47)   письмо автору
 
   для: algoritm2   (04.02.2015 в 19:40)
 

Ну почему же не получается - в один архив можно упаковать и ваш excel файл и картинки. Более того, если требуется обновление, то архиватор будет обновлять/добавлять файлы этого архива.
Нужно только грамотный подход к задаче, то есть excel файл, это не где-то само по себе готовится, а картинки вообще другая песня. Все должно быть неким сервисом в админке к примеру, где из необходимых данных готовится этот документ, затем этот документ пакуется в архив с добавлением изображений.

PS. Если ваш документ действительно соответствует формату excel, то он может и в себе хранить изображения.

  Ответить  
 
 автор: confirm   (04.02.2015 в 21:05)   письмо автору
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($pathZIPARCHIVE::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 $farchiveFile($path$f);
} else echo 
$e//иначе вывод ошибки


В прикреплении результат работы этого примера

  Ответить  
 
 автор: lightning.say   (05.02.2015 в 03:01)   письмо автору
 
   для: algoritm2   (04.02.2015 в 19:07)
 

возможно, вам пригодится следующая информация
http://hkpatel201.blogspot.in/2013/10/php-script-for-download-multiple-files.html

  Ответить  
Rambler's Top100
вверх

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