7、play中的文件上传
生活随笔
收集整理的這篇文章主要介紹了
7、play中的文件上传
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、基本的文件上傳處理
將form的類型設置成multipart/form-data,請求的方式必須是POST類型,實例如下:
請求發到controller,controller中處理:?
public Result upload() {MultipartFormData<TemporaryFile> body = request().body().asMultipartFormData();MultipartFormData.FilePart<TemporaryFile> picture = body.getFile("picture");// 直接轉成File,然后進行處理File file = (File)picture.getFile();// 也可以通過下邊的方式進行操作if (picture != null) {String fileName = picture.getFilename();long fileSize = picture.getFileSize();String contentType = picture.getContentType();TemporaryFile file = picture.getFlie();file.copy(new File(“路徑”));return ok("File uploaded");}}2、AJAX異步上傳表單文件
在這種情況下,請求主體不會被編碼為multipart/form-data數據,而是只包含純文件內容。此時可以使用另一種方式進行處理:
3、流式文件上傳解析器
Multipart/form-data指定的上載從請求中獲取上載的數據,并將其放入臨時文件對象中,可以通過使用multipartformDataBodyParser類將multipart.fileinfo信息流式傳輸到另一個類:
此內容在multipartformDataBodyParser文件中
4、清理臨時文件
在conf/application.conf中進行配置,應用啟動5分鐘后開始檢測并刪除應用中的上傳時間超過了30分鐘的臨時文件,此任務每30秒走一次:
play.temporaryFile {reaper {enabled = trueinitialDelay = "5 minutes"interval = "30 seconds"olderThan = "30 minutes"}}這里有一個疑問,如何限制上傳文件的大小呢?
可以在提交時進行校驗,也可以通過限制請求體解析器需要用到的緩沖區大小進行控制
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的7、play中的文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6、XML数据处理
- 下一篇: 8、play框架中持久层操作