目前,我所做的只是:
获取所有文件:
def itemPhotos = request.getMultiFileMap().item
将其转移到服务器的tmp文件夹:
for(itemPhoto in itemPhotos) {
if(itemPhoto.getOriginalFilename().length() == 0)
continue
String path = grailsAttributes.getApplicationContext()
.getResource("/../tmp").getFile().toString() + File.separatorChar + itemPhoto.getOriginalFilename()
itemPhoto.transferTo(new File(path))
itemImages.add(new File(path))
}
并将其上传到Picasa网络相册:
if(!itemImages.isEmpty()) {
def photoLinks = photoService.uploadImages(itemImages, itemInstance.id)
}
使用后删除它们:
for(itemImage in itemImages)
itemImage.delete()
因为,Picasa只能上传java.io.File
的文件。我必须先将文件传输到本地磁盘然后上传。我知道在使用多部分文件上传时,已经创建了一个临时文件,但为了简单起见,我将其转移。
由于我要上传这个应用程序,并且他们一次会上传大量内容,如何让这个过程耗费更少的时间,并且还可以减轻转移的负担。删除文件?
任何建议都表示赞赏。
答案 0 :(得分:0)
扩展或替换picasa service
,以便它可以将请求中的文件(作为流)直接传送到目标。我认为使用HttpBuilder
的相对简单的实现会做