FileUploadbase64 处理$SizeLimitExceed文件过大怎么处理

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
就是我设置uploadLimit = 5
在上传的过程中,我如果取消一个,队列还有4个。
然后我想再上传一个,就会提示说不让上传了。。。
这个BUG有人解决过吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
那你就用queueSizeLimit吧,只限制队列里存在文件的数量,不考虑上传的数量。
The maximum number of files that can be in the queue at one time.
This does not limit the number of files that can be uploaded.
To limit the number of files that can be uploaded, use uploadLimit.
If the number of files selected to add to the queue exceeds this limit, the onSelectError event is triggered.
这应该不算BUG,考虑的角度不同而已。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我是通过这种方式解决的:
1)首先给cancel事件加一个自己的函数:DeleteCancelFile
'onUploadSuccess': function (file, data, response) {
eval("data=" + data);
var cancel = $("#" + file.id + " .cancel a");
if (cancel) {
cancel.on('click', function () {
DeleteCancelFile(file.name);
2)在删除服务器文件后,加上下面2句就可以了,就是每次从服务器删除一个文件,就把uploadLimit + 1:
var swfuploadify = window['uploadify_file_upload'];
$("#file_upload").uploadify('settings', 'uploadLimit', swfuploadify.settings.uploadLimit + 1);
同步到新浪微博
分享到微博?
与我们一起探索更多的未知
专业的开发者技术社区,为用户提供多样化的线上知识交流,丰富的线下活动及给力的工作机会
加入只需一步
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要举报该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知Apache-FileUpload1.2.2在JSP中使用实例
1.先下载Apache的commons
FileUpload和IO的jar包,并将起引入到WebRoot\WEB-INF\lib目录内&
2.建立一个html文件或着jsp文件,代码如下:&
wmode="transparent"&&
&&/SPAN&html&&&
&&&&&/SPAN&head&&&
&&&&&&&&/SPAN&title&FileUpload&/&/SPAN&title&&&
&&&&/&/SPAN&head&&&
&&&&&/SPAN&body&&&
&&&&&&&&/SPAN&form&name="upform"&action="./servlet/FileUpload"&method="post"&&
&&&&&&&&&&&&enctype="multipart/form-data"&&&
&&&&&&&&&&&/SPAN&input&type="file"&name="file1"&id="file1"&/&&&/SPAN&br&/&&&
&&&&&&&&&&&/SPAN&input&type="submit"&value="Submit"&/&&&/SPAN&br&/&&&
&&&&&&&&&&&/SPAN&input&type="reset"&value="重置"/&&&
&&&&&&&/&/SPAN&form&&&
&&&&/&/SPAN&body&&&
&/&/SPAN&html&&&
3.建立一个Servlet,我在这里将servlet命名为FileUpload,代码如下:&
【PS:本代码将上传的文件存放在D:\lmis目录下】&
Java代码& fileItr =
try { List fileList = sfu.parseRequest(request); // 没有文件上传 if
(fileList == null || fileList.size() == 0) {
out.println("请选择上传文件"); out.println(""); } //
得到所有上传的文件 fileItr = fileList.iterator(); } catch
(FileUploadException e) {// 处理文件尺寸过大异常 if (e instanceof
SizeLimitExceededException) { out.println("文件尺寸超过规定大小:" + MAX_SIZE
+ "字节"); out.println(""); } e.printStackTrace(); } //
循环处理所有文件 while (fileItr.hasNext()) { FileItem fileItem =
String path = long size = 0; // 得到当前文件 fileItem = (FileItem)
fileItr.next(); // 忽略简单form字段而不是上传域的文件域(等) if
(fileItem == null || fileItem.isFormField()) { } //
得到文件的完整路径 path = fileItem.getName(); // 得到文件的大小 size =
fileItem.getSize(); if ("".equals(path) || size == 0) {
out.println("请选择上传文件"); out.println("");
} out.println("你已经选择上传文件"); // 得到去除路径的文件名 String t_name =
path.substring(path.lastIndexOf("\") + 1);
out.println("得到去除路径的文件名" + t_name); // 得到文件的扩展名(无扩展名时将得到全名) String
t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);
out.println("得到文件的扩展名" + t_ext); // 拒绝接受规定文件格式之外的文件类型 int allowFlag
= 0; int allowedExtCount = allowedExt. for (; allowFlag &
allowedExtC allowFlag++) { if
(allowedExt[allowFlag].equals(t_ext)) } if (allowFlag ==
allowedExtCount) { out.println("请上传以下类型的文件"); for (allowFlag = 0;
allowFlag & allowedExtC allowFlag++) out.println("*." +
allowedExt[allowFlag] +
out.println(""); } long now =
System.currentTimeMillis(); // 根据系统时间生成上传后保存的文件名 String prefix =
String.valueOf(now); // 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下
String u_name = "d:\\lmis\" + prefix + "." + t_ try { // 保存文件
fileItem.write(new File(u_name)); out.println("文件上传成功. 已保存为: " +
prefix + "." + t_ext + " &&文件大小:
" + size + "字节"); out.println(""); } catch (Exception e) {
e.printStackTrace(); } } } } "
wmode="transparent"&&
package&com.howe.lmis.&&
import&java.io.F&&
import&java.io.IOE&&
import&java.io.PrintW&&
import&java.util.I&&
import&java.util.L&&
import&javax.servlet.ServletE&&
import&javax.servlet.http.HttpS&&
import&javax.servlet.http.HttpServletR&&
import&javax.servlet.http.HttpServletR&&
import&mons.fileupload.FileI&&
import&mons.fileupload.FileUploadE&&
import&mons.fileupload.FileUploadBase.SizeLimitExceededExcepti&&
import&mons.fileupload.disk.DiskFileItemF&&
import&mons.fileupload.servlet.ServletFileU&&
public&class&FileUpload&extends&HttpServlet&{&&
&private&static&final&long&serialVersionUID&=&1L;&&
&public&FileUpload()&{&&
&&super();&&
&public&void&init()&throws&ServletException&{&&
&public&void&destroy()&{&&
&&super.destroy();&&&&
&public&void&doGet(HttpServletRequest&request,&HttpServletResponse&response)&&
&&&throws&ServletException,&IOException&{&&
&&doPost(request,&response);&&
&public&void&doPost(HttpServletRequest&request,&HttpServletResponse&response)&&
&&&throws&ServletException,&IOException&{&&
&&//&设置上传文件最大为&3M&&
&&final&long&MAX_SIZE&=&3&*&1024&*&1024;&&
&&//&允许上传的文件格式的列表&&
&&final&String[]&allowedExt&=&new&String[]&{&"jpg",&"jpeg",&"gif",&"txt",&&
&&&&&&&&&&&&&&&"doc",&"docx",&"mp3",&"wma",&"m4a"&};&&&
&&response.setContentType("text/charset=GB18030");&&
&&PrintWriter&out&=&response.getWriter();&&
&&System.out.println(request.getContentLength());&&
&&System.out.println(request.getContentType());&&&
&&//&实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload&&
&&DiskFileItemFactory&dfif&=&new&DiskFileItemFactory();&&
&&//&设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘&&
&&dfif.setSizeThreshold(4096);&&
&&//&设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录&&
&&dfif.setRepository(new&File("d:\\lmis\\temp"));&&
&&//&用以上工厂实例化上传组件&&
&&ServletFileUpload&sfu&=&new&ServletFileUpload(dfif);&&
&&//&设置最大上传尺寸&&
&&sfu.setSizeMax(MAX_SIZE);&&
&&//&从request得到&所有&上传域的列表&&
&&Iterator&fileItr&=&null;&&
&&&List&fileList&=&sfu.parseRequest(request);&&
&&&//&没有文件上传&&
&&&if&(fileList&==&null&||&fileList.size()&==&0)&{&&
&&&&out.println("请选择上传文件");&&
&&&&out.println("返回");&&
&&&&return;&&
&&&//&得到所有上传的文件&&
&&&fileItr&=&fileList.iterator();&&
&&}&catch&(FileUploadException&e)&{//&处理文件尺寸过大异常&&
&&&if&(e&instanceof&SizeLimitExceededException)&{&&
&&&&out.println("文件尺寸超过规定大小:"&+&MAX_SIZE&+&"字节");&&
&&&&out.println("返回");&&
&&&&return;&&
&&&e.printStackTrace();&&
&&//&循环处理所有文件&&
&&while&(fileItr.hasNext())&{&&
&&&FileItem&fileItem&=&null;&&
&&&String&path&=&null;&&
&&&long&size&=&0;&&
&&&//&得到当前文件&&
&&&fileItem&=&(FileItem)&fileItr.next();&&
&&&//&忽略简单form字段而不是上传域的文件域(等)&&
&&&if&(fileItem&==&null&||&fileItem.isFormField())&{&&
&&&&continue;&&
&&&//&得到文件的完整路径&&
&&&path&=&fileItem.getName();&&
&&&//&得到文件的大小&&
&&&size&=&fileItem.getSize();&&
&&&if&("".equals(path)&||&size&==&0)&{&&
&&&&out.println("请选择上传文件");&&
&&&&out.println("返回");&&
&&&&return;&&
out.println("你已经选择上传文件");&&
&&&//&得到去除路径的文件名&&
&&&String&t_name&=&path.substring(path.lastIndexOf("\")&+&1);&&
out.println("得到去除路径的文件名"&+&t_name);&&&
&&&//&得到文件的扩展名(无扩展名时将得到全名)&&
&&&String&t_ext&=&t_name.substring(t_name.lastIndexOf(".")&+&1);&&
out.println("得到文件的扩展名"&+&t_ext);&&&&&
&&&//&拒绝接受规定文件格式之外的文件类型&&
&&&int&allowFlag&=&0;&&
&&&int&allowedExtCount&=&allowedExt.&&
&&&for&(;&allowFlag&&&allowedExtC&allowFlag++)&{&&
&&&&if&(allowedExt[allowFlag].equals(t_ext))&&
&&&&&break;&&
&&&if&(allowFlag&==&allowedExtCount)&{&&
&&&&out.println("请上传以下类型的文件");&&
&&&&for&(allowFlag&=&0;&allowFlag&&&allowedExtC&allowFlag++)&&
&&&&&out.println("*."&+&allowedExt[allowFlag]&&
&&&&&&&+&"&&&");&&
&&&&out.println("返回");&&
&&&&return;&&
&&&long&now&=&System.currentTimeMillis();&&
&&&//&根据系统时间生成上传后保存的文件名&&
&&&String&prefix&=&String.valueOf(now);&&
&&&//&保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下&&&&&
&&&String&u_name&=&"d:\\lmis\"&+&prefix&+&"."&+&t_&&
&&&try&{&&
&&&&//&保存文件&&
&&&&fileItem.write(new&File(u_name));&&
&&&&out.println("文件上传成功.&已保存为:&"&+&prefix&+&"."&+&t_ext&&
&&&&&&&+&"&&&文件大小:&"&+&size&+&"字节");&&
&&&&out.println("继续上传");&&
&&&}&catch&(Exception&e)&{&&
&&&&e.printStackTrace();&&
其中fileItem(line:79)与Iterator(line:76)的泛型,因为本人不清楚应该设置什么格式,所以设置成为FileItem类型,如错请提点&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。FileUpload控件文件过大不进后台事件
[问题点数:60分,结帖人nie]
FileUpload控件文件过大不进后台事件
[问题点数:60分,结帖人nie]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年 总版技术专家分年内排行榜第一2007年 总版技术专家分年内排行榜第二2006年 总版技术专家分年内排行榜第二2004年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第三2003年 总版技术专家分年内排行榜第三2002年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第一2007年 总版技术专家分年内排行榜第二2006年 总版技术专家分年内排行榜第二2004年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第三2003年 总版技术专家分年内排行榜第三2002年 总版技术专家分年内排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 exceed fsizelimit 的文章

 

随机推荐