HTTP-загрузки с использованием ресурсов - PullRequest
12 голосов
/ 26 июля 2011

Я создаю службу загрузки на основе PHP для некоторых наших клиентов. Я использую SWFUpload, чтобы я мог видеть ход выполнения файла при его загрузке. Я его довольно много построил, но сталкиваюсь с одним последним вопросом, прежде чем мы сможем выпустить его для публики.

Многие (почти все) наши клиенты основаны на Mac и загружают наборы файлов, включающие файлы InDesign, шрифты, файлы Illustrator и т. Д. В большинстве случаев файлы изображений в порядке, но иногда (и всегда с типом) 1 шрифты) файл будет поврежден, поскольку теряет ветку ресурса.

Я понимаю, почему это происходит (переход от системы с несколькими форками к системе с одним форком), но я не могу найти элегантного решения. В моем исследовании лучший ответ, который я нашел до сих пор, - «пусть пользователь сожмет это». Я знаю, что это работает, но, по мнению нашего клиента, неоправданно требовать, чтобы они сжимали каждый набор файлов, которые они собираются отправлять.

Существуют ли лучшие решения для поддержки этих ресурсов? Конечно, я бы предпочел решение, которое является прямым javascript / php, но согласилось бы на то, что основано на flash или (наименее предпочтительно) на основе java.

Мои единственные требования к новому решению:

  • Просмотр процесса загрузки
  • Пользователь не должен сжимать файлы вручную

Вот некоторая информация о моей системе

  • Ubuntu 10.10 Сервер со стандартной установкой LAMP
  • PHP5
  • SWFUpload (самая последняя версия)

Ответы [ 2 ]

6 голосов
/ 28 июля 2011

Загрузка файлов дескриптора.Если браузер и соответствующая ОС не могут справиться с разветвлениями в этой процедуре (сопоставить любой файл с файловой моделью для выгрузки), то вы привязаны к тому, что вы получите от архитектуры системы.

Форк ресурса: Форк ресурса - это структура операционной системы Mac OS, используемая для хранения структурированных данных в файле вместе с неструктурированными данными, хранящимися в ветке данных.В ветке ресурсов хранится информация в определенной форме, например значки, формы окон, определения меню и их содержимое, а также код приложения (машинный код).

Если это блокирует вас, вывозможно, выбрал неправильное поле для работы. Просто сказать, что если вы сталкиваетесь с систематическими границами, вы ничего не можете с этим поделать.Даже если вы работаете с графическими дизайнерами и пользователями Mac.

Для swfupload потребуется функция для работы с вилками .Для этого flash потребуется функция для работы с вилками .Для этого браузеру в конечном итоге потребуется функция для работы с вилками .И так далее.

Рядом с этой цепочкой остается еще один вопрос: как обращаться с вилками?Поскольку при загрузке отображается только один файл с порцией двоичных данных, как также отобразить ответвление?Добавить это?Добавить дополнительный файл?

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

Так как вы не можете предложить что-то несуществующему пользователю, единственное, что вы можете сделать, это сделатьВаше приложение более удобное в использовании или удобное для пользователя.Например, предоставляя правильные заметки в нужное время (например, когда пользователь выбирает файл типа 1 для загрузки, чтобы напомнить ему / ей также о выборе форка).Общение с пользователем может помочь, но имейте в виду, что с пользователем нужно разговаривать на языке, который он / она понимает.

Так что, если вы знаете, что в некоторых типах файлов есть вилки, решите проблему с кем-то, ктоможет решить это: пользователь.Вы не можете.

0 голосов
/ 05 августа 2011

Вам не нужно использовать swfupload для мониторинга прогресса.

Вот файл, демонстрирующий это: https://github.com/senica/Booger/tree/master/assets/js/jquery-upload

Он не очень хорошо документирован, но в основном использует webkitSliceфункция для загрузки файлов в javascript.Вы можете использовать функции обратного вызова для отображения хода выполнения файлов.

Это будет решение javascript / php.

...