设置jvm内存很容易啊。
-Xmx1024m -Xms1024m不过你这个问题的解决方式最好是修改一下smartupload的源码,smartupload默认是先从request的流中读取到内存,调用save的时候再一次性写入磁盘,你可以修改成直接从request一遍读取,一遍写入,这样只要你的request不超时的话,你上传一个G的也不会有问题的。
-Xmx1024m -Xms1024m不过你这个问题的解决方式最好是修改一下smartupload的源码,smartupload默认是先从request的流中读取到内存,调用save的时候再一次性写入磁盘,你可以修改成直接从request一遍读取,一遍写入,这样只要你的request不超时的话,你上传一个G的也不会有问题的。
解决方案 »
- java怎么实现读取数据库image类型图像并在jsp页面的缩小显示
- 新手求教:请问eclipse环境下,jsp中使用JavaBean路径应该怎么写??急!
- javascript search 方法参数可以用变量吗
- ireport + jsp问题
- servlet做上传
- 什么工具可以自动生成get和set的方法
- JSP如何在页面中实现中途停止执行jsp代码?
- 找不到编译器?怎么回事?
- JSP里怎样延时一秒???(haha,一个傻问题)
- 急!!!JSP中update数据库中的数据,数据后面有一长串空格,再update前已经trim()过了,还是有!!!why???
- 图片上传问题
- springmvc+mybatis项目如何在启动项目时加载数据库数据到application中
-Xmx1024m -Xms1024m
是在http.conf文件里面的
smartupload上传时,一次将文件读取完,然后再写到硬盘,
源码如下:
this.m_totalBytes = this.m_request.getContentLength();
this.m_binArray = new byte[this.m_totalBytes];也就是说如果上传50M的文件,它会一次用50M内存读取,然后再写到硬盘;如果并发的话,就没法用了;所以smartupload上传需要严格控制上传文件大小;解决方案:commons-fileupload就行了,这种是多次读取,多次写入;总结:实质就是内存与效率之间的平衡,
smartupload一次读写占内存,commons-fileupload多次读写占cpu