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 に答える