2

我正在使用 Play Framework 2.0.2 创建一个修改用户上传的 Excel 文件的应用程序。上传和修改 Excel 文件(服务器端)后,用户的浏览器会自动下载该文件。

但是,使用此代码:

public static Result upload() throws IOException {
    Http.MultipartFormData body = request().body().asMultipartFormData();
    Http.MultipartFormData.FilePart filePart = body.getFile("uploadedFile");

    modifyExcelFile(filepart.getFile()); // this method modifies the uploaded Excel file, and copies it to a file named "copy.xlsx"

    return ok(new File("copy.xlsx"));
}

客户端下载的文件将以当前控制器命名。例如,如果我的控制器名为UploadController,下载的文件令人惊讶地命名为uploadcontroller.xlsx

关于如何修改代码以便更严格地控​​制下载文件的名称的任何想法?我希望下载的文件被命名copy.xlsx,而不是uploadcontroller.xlsx.

4

1 回答 1

7

只需在响应标头中添加:

response().setHeader("Content-Disposition", "attachment; filename=FILENAME");

其中 FILENAME 是您希望文件具有的名称。

于 2012-07-02T05:10:08.737 回答