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
Форумы портала PHP.SU :: Версия для печати :: загрузка и проверка файла
Форумы портала PHP.SU » » Работа с файловой системой и файлами » загрузка и проверка файла

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

1. broshurkaplus - 18 Сентября, 2012 - 20:18:09 - перейти к сообщению
здравствуйте, давненько не был.
пишу сюда
возникла проблема:
1 при загрузке файлов на сайт требуется проверить тип mime, не заголовки, нужно только zip архив и mp3
2 можно ли проверить то что внутри архива?

прочитал и поискал тут, функция выдает ошибку, те походу недоступна мне. может у хостера спросить доступна ли? (только он медленный)

если можно дайте пожалуйста пример или в чём может быть вопрос?
2. armancho7777777 - 18 Сентября, 2012 - 20:30:50 - перейти к сообщению
broshurkaplus пишет:
можно ли проверить то что внутри архива?

Встроенный класс ZipArchive.
PHP:
скопировать код в буфер обмена
  1.  
  2. $zip = new ZipArchive;
  3.  
  4. $zip->open('archive.zip');
  5.  
  6. for($i = 0; $i < $zip->numFiles; $i++)
  7. {
  8.         $filename = $zip->getNameIndex($i);
  9.  
  10.         $f = $zip->getFromName($filename);
  11.  
  12.         if(strstr(mime_content_type($f), 'image'))
  13.         {
  14.             // Если картинка, то сохраняем
  15.         }
  16. }
  17.  
3. broshurkaplus - 18 Сентября, 2012 - 20:37:39 - перейти к сообщению
по вопросу 2 я при быстром осмотре так понял что там ZipArchive::statIndex-Получение детальной информации по элементу по его индексу, в массиве [mtime] =>будет типом файла в архиве?
уточните если вы разбирались с ним досконально.

по 1 можете что нить подсказать, я код крутил, удалил уже, а с коленки не напишу, надо искать где брал, можете подсказать?
4. armancho7777777 - 18 Сентября, 2012 - 20:41:12 - перейти к сообщению
broshurkaplus пишет:
mtime

Время последней модификации файла.

broshurkaplus пишет:
по 1 можете что нить подсказать, я код крутил, удалил уже, а с коленки не напишу, надо искать где брал, можете подсказать?

mime_content_type
5. broshurkaplus - 18 Сентября, 2012 - 20:54:00 - перейти к сообщению
стандартный mime_content_type у меня чего то ошибку выдаёт
правильно ли понял, просмотрев:
1он должен быть в пхп, если нет то попросить подключить php_zip.dll,
2код приведеный первым распакует мне в мою папку,(в временную папку сервера нельзя я так понял) из неё я перемещу куда надо
3последний код вернет индекс файла в архиве, те имя, но майм, я понял, он не проверит а там мот быть недопустимый файл
4 ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус - это мне покажет вообще загруженный файл архив или нет

?
6. armancho7777777 - 18 Сентября, 2012 - 20:54:59 - перейти к сообщению
Я подправил код Выше.
(Добавление)
broshurkaplus пишет:
3последний код вернет индекс файла в архиве, те имя, но майм, я понял, он не проверит а там мот быть недопустимый файл
4 ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус - это мне покажет вообще загруженный файл архив или нет

Может заглянем в мануал, ознокомимся с описаниями методов и посмотрим примеры?
7. broshurkaplus - 18 Сентября, 2012 - 20:59:18 - перейти к сообщению
простите не успеваю за вашими изменениями.
он встроеный те полюбому работать должен и подключать его не надо сразу код.
image это не мне
мне архив только зип, внутри только 1 файл - fb2 или mp3

(а то 2 окна по 10 вкладок Радость )
8. armancho7777777 - 18 Сентября, 2012 - 20:59:57 - перейти к сообщению
Ах да, забыл... И экспериментируем.
(Добавление)
broshurkaplus пишет:
image это не мне

Да это пример, ё - моё Ща взорвусь!
9. broshurkaplus - 18 Сентября, 2012 - 21:06:23 - перейти к сообщению
спасибо, я все ж читаю эти примеры. навоял уже, загрузил вроде файл, буду тестить. позже напишу.
я всеж новичок (вечный )
10. armancho7777777 - 18 Сентября, 2012 - 21:07:19 - перейти к сообщению
Не за что.
11. broshurkaplus - 18 Сентября, 2012 - 22:15:40 - перейти к сообщению
загрузку слделал, но ZipArchive не подключается
походу у меня пхп 5,2,17 должно быть в комплекте, но пишет Fatal error: Class 'ZipArchive' not found

спросить у хостера?

в пхпинфо php_zip.dll не нашел
все что похожее нашел zlib - ZLib Support enabled
направьте на путь истинный, потому что отдельно где взять класс чтоб подключать не нашёл.
спасибо
12. armancho7777777 - 18 Сентября, 2012 - 22:21:39 - перейти к сообщению
Да, по умолчанию его там нет.
Только zlib.
Надо ставить.
(Добавление)
Посмотрите в папке ext директории PHP, есть там файл php_zip.dll ?
13. broshurkaplus - 18 Сентября, 2012 - 22:40:22 - перейти к сообщению
простите, я ж ведь учусь.
в пхпинфо zlib - ZLib Support enabled, но в папке с сайтом есть папка пхп, куда по идее нужно ставить исполняемые скрипты и тд, похоже туда и нужно установить класс и подключать его оттуда.

у меня не на компе, сайт уже на хостинге висит, сам изменений ведь в пхп не внесу, dll не поставлю. и везде только описания класса, а сам класс ZipArchive скачать нету. только php_zip.dll нашёл.
?
напишу хостеру

пока что до завтра отложу вопрос, спать пора.
14. armancho7777777 - 18 Сентября, 2012 - 22:45:21 - перейти к сообщению
Пишите хостеру.
(Добавление)
У моего хостера, кстати, можно самому выставлять версию php ))
Даже для отдельной директории))
Через htaccess
php 5.2, 5.3, 5.4
На выбор )
(Добавление)
broshurkaplus пишет:
но в папке с сайтом есть папка пхп, куда по идее нужно ставить исполняемые скрипты и тд, похоже туда и нужно установить класс и подключать его оттуда.

Нет, не то.
15. broshurkaplus - 21 Сентября, 2012 - 18:53:48 - перейти к сообщению
не было времени написать, может кому полезно будет
да действительно вы правы хостер позволяет подключать различные версии к разным папкам, "просто если тебе не надо и ты не в курсе так он и ставит функционал попроще", надо было у него спросить

вобщем так
для пхп 5,2 хотя и пишет в мануале что поддерживается ZipArchive - в реальности настройки надо для ini и тд. что не устраивает. в итоге сделал так

поставил в .htaccess строку для пхп 5,3
AddHandler application/x-httpd-php-ex .php
у него, хостера, это так прописывается, хостер и я потестили - все ок
тепрь сразу по умолчанию доступно все, что требовалось, что нет работало
ZipArchive
mime_content_type - хотя как пишут немного устарело, и вместо него
finfo_open

тепрь
armancho7777777 пишет:
экспериментируем
над скриптом загрузки для проверки архива на зип, подсчета файлов внутри и проверки майма файлов в архиве, как "заточу" код выложу может кому поможет.

 

Powered by ExBB FM 1.0 RC1