Upload & Unzip - скрипт для быстрой загрузки доров

alexandr_nv
На сайте с 23.04.2009
Offline
39
38936

Описание:

PHP-скрипт загружает zip-архив на сервер и там его распаковывает.

Преимущества перед обычной заливкой файлов на ftp:

- Для загрузки на ftp (особенно на медленные фрихостинги) 1000 файлов понадобится очень много времени. На загрузку 1 архива (с 1000 файлов внутри) уйдет не более минуты.

Требования:

- Поддержка PHP на хостинге (куда заливается архив)

Работа скрипта:

  • Указываете данные аккаунта
  • Выбираете ZIP архив
  • Нажимаете загрузить
  • Далее идут действия скрипта:
    • Скрипт подклчается к FTP
    • Переходит в указанный каталог, ставит права 777
    • Загружает файлы: pclzip.lib.php - класс для работы с zip-архивами, run.php - скрипт, распаковывающий архив на сервере, и сам архив
    • Вызов скрипта run.php, который распаковывает файлы из архива, затем удаляет все временные файлы

Дополнительные возможности:

На некоторых фрихостингам установлено ограничение на размер файла. Например, на freehostia.com - 500 кб. Если залить файл, превышающий этот размер - то он автоматически удалится через некоторое время.

Я добавил в скрипт возможность разбивки архива на части (по указанному размеру).

Архив разбивается на n-частей и загружается на ftp, при вызове run.php архив обратно склеивается и распаковывается.

Таким образом, можно загружать архивы превышающие по размеру ограничение хостинга. (Тестировал на freehostia.com)

Примечания

1) Скрипт задумывался как более быстрое средство загрузки доров на фрихостинги, но также будет эффективен для загрузки доров на свои серверы.

2) Поддержки прокси нет. Но, если хотите - установите программу Proxifier - с её помощью все соединения будут устанавливаться через указанные socks-прокси (скрипт должен запускаться на локальном компьютере).

3) На фрихостингах может стоять жесткое ограничение на время выполнения скрипта (на freehostia.com 30 сек) - если скрипт не успеет распаковать архив за это время (слишком большой архив), то увы.

Интерфейс

Формат аккаунта состоит из полного uri ftp(с указанием логина\пароля) и web-адреса сайта:

ftp://mylogin:mypass@ftpserver/remotefolder/ http://mysite.com/

Разделитель - пробел или таб

Установка скрипта

- Скачайте, распакуйте в нужное место, запускайте upload&unzip/index.php

- Если скрипт ставите не на локальный компьютер, поставьте права 777 на папку temp

Скачать

http://trindex.ru/download/upload&unzip.zip (37 кб)

ps) Конечно, такую программу лучше бы реализовать в виде desktop-приложения, добавить поддержку прокси, но сейчас нет времени на это.

Пишите о своих замечаниях, пожеланиях (если не очень глобальные - то обязательно сделаю).

monetka
На сайте с 20.03.2008
Offline
114
#1

Десктопный вариант был бы то, что нужно :)

[Удален]
#2

Спасибо, ТС. Читая пост готовился купить и прикидывал сколько она стоит ) Будем тестить!

[Удален]
#3
monetka:
Десктопный вариант был бы то, что нужно :)

+100500

ТС, не планируется десктопный?

[Удален]
#4

отличный скрипт! Из пожеланий, то, что Вы сами и озвучили - делайте десктопным +прокси

Dimid
На сайте с 03.12.2006
Offline
74
#5

сделайте что бы можно было пачку заданий добавить

по одному архиву тыкать не дело

[Удален]
#6

ТС, скрипт выдал ошибку

Fatal error: Call to undefined function curl_init() in Z:\home\site.ru\ on line 95

site.ru -это на локали папка со скриптом

ewg777
На сайте с 04.06.2007
Offline
225
#7
shizblink:
ТС, скрипт выдал ошибку

Fatal error: Call to undefined function curl_init() in Z:\home\site.ru\ on line 95

site.ru -это на локали папка со скриптом

Курл нужен.

[Удален]
#8

А как его на локали (денвер) сделать?

ewg777
На сайте с 04.06.2007
Offline
225
#9
shizblink:
А как его на локали (денвер) сделать?

http://www.google.ru/#num=20&hl=ru&newwindow=1&safe=off&q=curl+denwer&lr=&aq=f&oq=curl+denwer&fp=325c3a460f5d85eb

unemployed
На сайте с 07.05.2009
Offline
101
#10
shizblink:
А как его на локали (денвер) сделать?

php.ini правь , перед extension=php_curl.dll убери ; и сохрани

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий