关于SmartUpload上传文件至服务器目录问题:如何在上传之后释放文件流所耗内存?
兄弟目前遇到一个问题,由于系统各个模块都有用到附件上传。但当系统中用户足够多的时候,倘若大家都上传附件,则很容易造成进程堵塞。
我检查了一下使用SmartUpload的上传代码,具体相关处理代码如下:
<jsp:useBean id="myUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
myUpload.initialize(pageContext);
myUpload.upload();
java.util.Enumeration e = myUpload.getRequest().getParameterNames();
String path=request.getRealPath("."); //文件路径
path = path.substring(0,path.length()-1)+"g/documentsave/gongcheng";
//........相关变量处理
try {
com.jspsmart.upload.File myFile = myUpload.getFiles().getFile(0);
FileName = myFile.getFileName();
FileName = new String(FileName.getBytes("iso-8859-1"),"GBK");
SlaveSize = myFile.getSize();
String ReName = System.currentTimeMillis()+SlaveSize+"."+myFile.getFileExt(); //文件重命名
String alphaPt = path+"/"+ReName;
myFile.saveAs(alphaPt);//上传保存文件
} catch (Exception er) {
out.println(er.toString());
}
%>
其中并无关于上传完毕后的内存释放处理。
因为SmartUpload上传是先将文件流读到内存中,再转换写入服务器目录下,而上传完毕后并未主动将所用内存释放,所以本人认为进程堵塞的主要原因便是在此。
我检查了SmartUpload原文件,期间并没有类似close等释放对象的方法。由于本人并没有关于二进制文件流的释放处理经验,不知道哪位大哥可以提供类似的处理?