【发布时间】:2013-08-29 14:36:12
【问题描述】:
我想将 2MB - 10MB 的图片上传到我的服务器并直接保存到硬盘。目标是尽可能多地节省 JVM 的堆内存,因为如果用户同时上传,我的系统不应该崩溃。
这就是我目前的做法。当一个上传请求进入我的控制器时,我会这样做:
CommonsMultipartFile file = (CommonsMultipartFile) request.getFile('image')
InputStream inputStream = file.inputStream
byte [] byteFile = inputStream.getBytes()
try{
def fullPath = // some image path and file name
def newFile = new FileOutputStream(fullPath)
newFile.write(byteFile)
newFile.close()
}
catch(IOException e){ }
Here我读到有ImageIO和java.awt.Toolkit,其中Toolkit应该是最快的存储文件。
如何改进我的上传以使用尽可能少的堆并尽可能快地上传?
备选方案 1:
另一种选择是:
CommonsMultipartFile file = (CommonsMultipartFile) request.getFile('image')
def fullPath = // some image path and file name
file.transferTo(new File(fullPath))
哪个更好?
【问题讨论】:
标签: java servlets grails grails-2.0