为什么我只能使用Play和uploadify上传一个文件?

时间:2012-01-24 16:36:13

标签: java javascript image playframework uploadify

我写了simple Play-uploadify demo

我想要一个上传按钮,每次按下它时都会自动上传图像。

出于某种原因,只有第一次按下按钮,我才会上传。按下按钮一次后,除非我“取消”之前的上传,否则进一步按下不会产生任何结果。

(我不明白用auto模式取消上传的意思。也许问题是我的下载在某种意义上从未“完成”?)

这是我的行动方法:

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

对uploadify的调用:

$(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 个答案:

答案 0 :(得分:1)

问题是我没有返回HTTP 200状态代码,因为我没有调用任何渲染方法或在我的操作方法结束时返回一个值。

添加renderText("OK");解决了我的问题。

ok();是一种解决问题的简洁方法。

答案 1 :(得分:0)

尝试将其更改为

    script      : '/application/upload',

(注意应用程序中的小写字母a ...当您使用默认路由时,播放始终会生成小写网址。)

一次只能上传一个文件:

您是否已在开发或生产模式下测试过上传?  在开发模式下,可用于处理的线程数量为1,  因此,只要您想在同一时间上传第二个文件,它就会阻止