簡體   English   中英

在play框架中讀取上傳文件

[英]read upload file in play framework

我正在使用播放框架2.1.0,將文件上傳到play-app/upload文件夾。

然后我運行play 'start -Dhttp.port=80'來啟動服務器。

但是當我將文件上傳到play-app/upload文件夾時,無法立即訪問它。

如果我停止服務器並重新啟動,則可以訪問該文件。

我怎么解決這個問題? 非常感謝。

ps,我將/upload路由如下:

GET     /upload/*file               controllers.Assets.at(path="/upload", file)

可能是靜態文件一次加載了嗎? 我該如何解決?

最好制定上傳文件夾中的應用程序的文件夾之外,並添加它就像路徑/home/navins/upload-folder/application.conf ,那么你就可以訪問它的全部時間,你也可以在那里上傳文件不僅適用於應用程序(即通過FTP),無需重啟。

我認為您需要定義一種Remote assets控制器。 基本上,一旦上傳了文件,就將其放在應用程序文件夾之外的文件夾中。 然后,使用將允許您訪問它的控制器。 這是一個示例: http : //www.jamesward.com/2012/08/08/edge-caching-with-play2-heroku-cloudfront

在這里,James Ward創建了一個控制器來訪問存儲在cloudfront上的資產,您需要做的是編寫一個類似的控制器,並將“內容url”替換為“已上傳文件目錄”的絕對路徑。

最后,我通過在控制器中添加訪問方法解決了它:

public static Result view(String filename) {
    File file  = new File(Play.application().path().getAbsolutePath() + "/upload/" + filename);
    return ok(file);
}

然后,更改route conf,您可以通過方法訪問文件。

順便說一句,如果您正在使用2.0以下的播放框架,則可以使用:

    renderBinary(file, ContentType);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM