0
我試圖用Play 2同時加載多個文件,併爲它們構建一些縮略圖,並使用異步API。 上傳工作非常好,圖像處理開始時會遇到很大的麻煩。 問題如下(有點說明):從圖像處理(花費大量時間),從請求中提取並收集到列表中的文件正在消失。Play Framework 2.多文件上傳和處理
而且一些樣品在這裏:
//part of controller
public static Result addPictures2(Long galleryId) {
MultipartFormData body = request().body().asMultipartFormData();
final List<FilePart> fileList = body.getFiles();
final Long fGalleryId = galleryId;
Promise<Boolean> promiseOfBool = Akka.future(
new Callable<Boolean>() {
public Boolean call() {
Gallery gallery = Gallery.find.byId(fGalleryId);
for(FilePart part : fileList) {
File picFile = part.getFile();
Logger.debug("picFile: " + picFile.exists());
String extension = FilenameUtils.getExtension(part.getFilename());
GalleryItem item = new GalleryItem("", "", picFile, extension);
gallery.addItem(item);
}
gallery.update();
return true;
}
}
);
return async(
promiseOfBool.map(
new Function<Boolean, Result>() {
public Result apply(Boolean b) {
return redirect(
controllers.backend.routes.GalleryContentController.showGalleryItemsPage(fGalleryId)
);
}
}
)
);
}
所以
gallery.addItem(項目);
需要花費大量的時間,並且下一個呼叫爲
Logger.debug( 「picFile:」 + picFile.exists());
說picFile不存在。我知道,這是因爲這些文件是臨時的......但是它們應該存在多久?問題是:如何解決這個問題。我應該看看java中的臨時文件嗎?
經常會詢問文件上傳問題,您能否更新問題並添加適合您的解決方案的正確代碼? – adis