这是我上传的部分代码
final long MAX_SIZE = 5 * 1024 * 1024;// 设置上传文件最大为 5M
// 允许上传的文件格式的列表
final String[] allowedExt = new String[] { "jpg", "jpeg", "gif" };
response.setContentType("text/html");
// 设置字符编码为GBK, 这样支持汉字显示
response.setCharacterEncoding("GBK"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
DiskFileItemFactory dfif = new DiskFileItemFactory();
dfif.setSizeThreshold(20*4096);// 设置上传文件时用于临时存放文件的内存大小,这里是80k.多于的部分将临时存在硬盘
dfif.setRepository(new File(request.getRealPath("/") + "UploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录 // 用以上工厂实例化上传组件
ServletFileUpload sfu = new ServletFileUpload(dfif);
// 设置最大上传尺寸
sfu.setSizeMax(MAX_SIZE);PrintWriter out = response.getWriter();
// 从request得到 所有 上传域的列表
List fileList = null;
fileList = sfu.parseRequest(request);
if (fileList == null || fileList.size() == 0) {
out.print("<script>");
out.print("alert(\"请选择上传文件\");");
out.print("parent.close();");
out.print("window.returnValue='';");
out.flush();
out.print("</script>"); }
问题出在红色部分
我发现一个问题,只要我上传的图片大小超过80k,就会报“请选择上传文件”的提示信息
凡是小于80k的文件,就可以正常上传
请问
dfif.setSizeThreshold(20*4096);//
一定要设置很大吗?如果不是,错在什么地方?
final long MAX_SIZE = 5 * 1024 * 1024;// 设置上传文件最大为 5M
// 允许上传的文件格式的列表
final String[] allowedExt = new String[] { "jpg", "jpeg", "gif" };
response.setContentType("text/html");
// 设置字符编码为GBK, 这样支持汉字显示
response.setCharacterEncoding("GBK"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
DiskFileItemFactory dfif = new DiskFileItemFactory();
dfif.setSizeThreshold(20*4096);// 设置上传文件时用于临时存放文件的内存大小,这里是80k.多于的部分将临时存在硬盘
dfif.setRepository(new File(request.getRealPath("/") + "UploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录 // 用以上工厂实例化上传组件
ServletFileUpload sfu = new ServletFileUpload(dfif);
// 设置最大上传尺寸
sfu.setSizeMax(MAX_SIZE);PrintWriter out = response.getWriter();
// 从request得到 所有 上传域的列表
List fileList = null;
fileList = sfu.parseRequest(request);
if (fileList == null || fileList.size() == 0) {
out.print("<script>");
out.print("alert(\"请选择上传文件\");");
out.print("parent.close();");
out.print("window.returnValue='';");
out.flush();
out.print("</script>"); }
问题出在红色部分
我发现一个问题,只要我上传的图片大小超过80k,就会报“请选择上传文件”的提示信息
凡是小于80k的文件,就可以正常上传
请问
dfif.setSizeThreshold(20*4096);//
一定要设置很大吗?如果不是,错在什么地方?
解决方案 »
- 问一个关于protected修饰符的问题。
- Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?
- 谁有关于java nio多文件的上传的简单例子共享下哈。。(50分相送)
- 有没有国外的java 相关论坛或网站 推荐一下
- 如何获取JTextPane中文本的行数
- public void executeUpdate(String sql) throws SQLException{..}这样的句法是什么意思啊
- 请问有一定编程基础,学习java开始要看些什么样的书籍亚?
- 鱼,我所欲也,熊掌亦我所欲也.C++,我所欲也,Java亦我所欲也,我该何去何从?
- 求助:oracle中有一万条纪录.....MS_EXCEL
- 大家看看我理解的散列冲突对吗?
- 可以列举一些,基于接口的,可插拨的系统源码框架吗?
- 看到那个4棵树的问题,我也来一个
fileList = sfu.parseRequest(request); 这里肯定为空,因为你上传的已经写到了指定目录。
一定要设置很大吗?如果不是,错在什么地方?这是设置临时文件的大小,当上传文件夹大过此值,就存到硬盘上,小于此值,就在内存里