限制Playframework 2.2.x中的上传文件大小

时间:2015-08-06 12:10:56

标签: file-upload playframework playframework-2.2

关于play framework 2.2.3中的文件上传。 根据{{​​3}}问题的更新, 将以下内容添加到application.conf应该允许上传最多10MB的文件。

parsers.MultipartFormData.maxLength = 10240K

这对我不起作用。我得到" 413,请求实体太大"任何大于1MB的文件的错误代码。

我尝试设置另一个字段

parsers.text.maxLength=10M

仍然使用413上传失败。

我使用XHR上传文件,其中FormData可以包含多个文件。

上传控制器代码:

public Result uploadAttendeeFiles(){
    try{
    MultipartFormData body = request().body().asMultipartFormData();
    List<FilePart> uploadedFiles = body.getFiles();
    Map<String, String> returnMessages = new HashMap<String, String>();

    String fileName ="", fileExtension="", fieldId = "";
    int fileCounter = 0;

    if (!CommonUtils.isEmpty(uploadedFiles)) {
        for (FilePart filePar : uploadedFiles) {
            try {
                fileExtension = Files.getFileExtension(filePar.getFilename());
                fieldId = body.asFormUrlEncoded().get("fieldId")[fileCounter];
                fileName = body.asFormUrlEncoded().get("fileName")[fileCounter++];

                InputStream in = new FileInputStream(filePar.getFile());
                Object objectId = uploadService.loadFile(in, fileName, fileExtension);

                if(objectId != null)
                    returnMessages.put(fieldId, objectId.toString());
                else
                    returnMessages.put(fieldId, "failed-Failed to save file!");
            } catch (IOException e) {
                returnMessages.put(fileName+"."+fileExtension, "failed-Error while uploading file!");
                e.printStackTrace();
            }
        }
    }
    else{
        return ok("{\"errormessage\":\"No files selected!\"}");
    }
    return ok(Json.toJson(returnMessages));
    } catch(Exception e) {
        e.printStackTrace();
        return ok("{\"errormessage\":\"Error while uploading files!\"}");
    }
}

0 个答案:

没有答案