Использование uploadify как части веб-формы asp.net?

У меня есть веб-форма, которая требует от пользователей заполнения некоторой информации и загрузки изображения.

Чего я не понимаю:

  1. Если я использую uploadify для выбора файла, разве он не загружает его сразу на сервер? Есть ли способ отложить это до тех пор, пока пользователь не нажмет кнопку отправки формы? Или хотя бы не сохранять в файловую систему?

  2. В большинстве примеров для загрузки файлов используется пользовательский HttpHandler, но моя загрузка файлов является частью формы. Должен ли я по-прежнему использовать HttpHandler для этого?


person chobo    schedule 27.05.2011    source источник


Ответы (2)


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

  1. Если я использую Uploadify для выбора файла, он не загружает его сразу на сервер?

    Как видно из первой демонстрации, у вас может быть anchor (или button, или что-то еще) для запуска загрузки. Uploadify ничего не загружает, пока это не будет сделано (если свойство auto не установлено). т true).

  2. Есть ли способ отложить это до тех пор, пока пользователь не нажмет кнопку отправки формы?

    Как описано выше, да. И это способ по умолчанию (поскольку значение по умолчанию для auto равно false).

  3. Или хотя бы не сохранять в файловую систему?

    Хотя кнопка не запускает метод .uploadifyUpload(), серверу ничего не передается. Но когда Uploadify начнет отправлять, он будет обработан сервером (с обработчиком HTTP). Обработчик — это парень, который сохраняет его в файловой системе.

  4. В большинстве примеров для загрузки файлов используется пользовательский HttpHandler, но моя загрузка файлов является частью формы. Должен ли я по-прежнему использовать HttpHandler для этого?

    Как описано в свойстве script, вы можете указать любой серверный язык, который будет обрабатывать HTTP-запрос, содержащий данные. HttpHandler - это правильно, потому что у него нет никакой другой обработки до или после кода, который вы пишете. Это не сложно. официальный форум показывает несколько примеров. И здесь, в StackOverflow, у нас есть много вопросов по этому поводу, например: Начало работы Uploadify на C# и Uploadify не работает с ASP.NET WebForms.

person Erick Petrucelli    schedule 28.05.2011
comment
Я наткнулся на свойство Auto:false, которое откладывает загрузку. Проблема, с которой я столкнулся сейчас, заключается в том, что когда пользователь нажимает кнопку отправки, он проходит проверку на стороне сервера, но затем в самом конце проверки мне нужно вызвать метод .uploadifyUpload(). Как я могу вызвать это со стороны сервера? - person chobo; 30.05.2011
comment
Это невозможно. Стратегия здесь должна быть обратной: используйте свойство scriptData, чтобы отправить все ваши поля формы с запросом на загрузку файла. Затем ваш обработчик HTTP может проверить полученные данные, а затем продолжить сохранение файла, только если данные действительны. - person Erick Petrucelli; 30.05.2011
comment
Это то, что я подумал, потому что у вас есть два потока, один синхронный, а другой асинхронный. Я думаю, что scriptData - единственный простой способ справиться с этим, спасибо! - person chobo; 30.05.2011

  1. Сервер не должен сохранять файл до тех пор, пока он не будет обработан обработчиком. Uploadify обеспечивает управление пользовательским интерфейсом для сбора файлов и обратной связи. Есть несколько настраиваемых свойств, позволяющих контролировать, хотите ли вы «Автоматическую» загрузку или нет.
  2. Вам по-прежнему нужен какой-то король обработки на стороне сервера для сохранения данных, и HTTPHandler — это обычный способ сделать это. HTTPHandler просто работает с информацией о файле, которую он получает от браузера как часть данных формы, состоящей из нескольких частей.

Вот ответ, в котором содержится дополнительная информация об Uploadify: Начало работы Uploadify на C#

person Turnkey    schedule 28.05.2011