Почему я могу загрузить только один файл с помощью Play и загрузить? - PullRequest
1 голос
/ 24 января 2012

Я написал это Простая демонстрация Play-uploadify .

Я хочу кнопку загрузки, которая автоматически загружает изображение при каждом его нажатии.

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

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

Вот мой метод действия:

public static void upload(File file, long userId){
    System.out.println("Uploaded file name " + file.getName() + 
      " by user " + userId);
}

И призыв к загрузке:

$(function() {
    $("#uploader").uploadify({
        uploader    : '/public/libraries/uploadify/uploadify.swf',
        script      : '/Application/upload',
        cancelImg   : '/public/libraries/uploadify/cancel.png',
        folder      : '/uploads',
        fileExt     : '*.jpg;*.gif;*.png',
        fileDesc    : 'Image Files',
        fileDataName: 'file',
        scriptData: {userId: 123},
        auto: true
    });
});

Кроме того, загрузка никогда не завершается - когда я добавляю обработчик onComplete, он не запускается.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Проблема заключалась в том, что я не возвращал код состояния HTTP 200, потому что я не вызывал никакой метод рендеринга и не возвращал значение в конце моего метода действия.

Добавление renderText("OK"); решило мою проблему.

ok(); - более точный способ ее решения.

0 голосов
/ 24 января 2012

попробуйте изменить его на

    script      : '/application/upload',

(обратите внимание, что строчная a в приложении ... play всегда генерирует строчные URL при использовании маршрута по умолчанию.)

только длявозможность загружать по одному файлу за раз:

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

...