jspSmartUpload组件实现上传文件问题(正解追加50分)

我的代码为:SmartUploadup=newSmartUpload();up.initialize(pageContext);up.service(request,re... 我的代码为:
SmartUpload up=new SmartUpload();
up.initialize(pageContext);
up.service(request,response);
up.upload();
up.setAllowedFilesList("doc,docx,txt,pdf");
up.setDeniedFilesList("exe,bat,jsp,dll,htm,html,,");
up.setMaxFileSize(1000000);
up.setTotalMaxFileSize(5000000);
int count=up.save("/upload/");
out.println("<font color=red>"+count+"</font>个文件上传成功!<br>");
out.println("<table border=\"1\">");
out.println("<th>序号</th><th>文件名</th><th>文件类型</th><th>文件大小</th><th>文件路径</th>");
for(int i=0;i<up.getFiles().getCount();i++)
{
com.jspsmart.upload.File file=up.getFiles().getFile(i);
if(file.isMissing())
{continue;}
out.println("<tr>");
out.println("<td>"+i+1+"</td>");
out.println("<td>"+file.getFileName()+"</td>");
out.println("<td>"+file.getFileExt()+"</td>");
out.println("<td>"+file.getSize()+"</td>");
out.println("<td>"+file.getFilePathName()+"</td>");
out.println("</tr>");
}
out.println("</table><br>");
}
catch(Exception e)
{e.printStackTrace();}
问题:
1、上传能成功,没有抛出异常,无论几个文件。但是就是在目录中找不到文件
2、即使我上传不允许的扩展名的文件也显示上传成功,按理说不是应该抛出异常吗?
展开
 我来答
你我皆凡人0V
推荐于2016-07-08 · TA获得超过392个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:648万
展开全部
参考这个.
SmartUpload mySmartUpload =new SmartUpload();
String deviceId =Sequence.getInstance().getSeqNumber("deviceInf");

// 初始化
final String upFileType="jpg|JPG|GIF|gif|bmp|BMP"; //上传文件类型
final int MAXFILESIZE=100000; //上传文件大小限制
String errMsg=null; //错误信息
boolean err=false; //错误标志
int fileSize=0; //文件大小
String url="images/"; //应保证在根目录中有此目录的存在
String fileName = "";
String fileType ="";
String normalPicName = deviceId+"n";
String alarmPicName = deviceId+"a";
mySmartUpload.initialize(pageContext);

// 上传文件
mySmartUpload.upload();

//判断将要上传文件的总容量是否超过上限
int count = mySmartUpload.getSize();
if(count>MAXFILESIZE){
out.print ("<script>alert('上传失败!文件大小:"+count/1024+"K超出了限定的范围(最大"+ MAXFILESIZE/1024+"K)');this.history.go(-1);</script>");
//response.sendRedirect("http://127.0.0.1:8080/javastudy/upload.htm");
}

// 循环取得上传所有文件
else{
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);

if (!myFile.isMissing()) {
String myFileName=myFile.getFileName();//得到文件名
//out.println(myFileName);
//if(myFileName.length()>0){ //取得不带后缀的文件名
//String subFileName=myFileName.substring(0,myFileName.lastIndexOf('.'));
//}
fileType=myFile.getFileExt();//得到文件扩展名
fileType=fileType.toLowerCase(); //将扩展名转换成小写
if (upFileType.indexOf(fileType)==-1){
err=true;
errMsg="文件"+myFileName+"上传失败!只允许上传以下格式的文件:"+upFileType;
}
//得到单个文件大小
//fileSize+=myFile.getSize();
//if (err==false&&fileSize>MAXFILESIZE){
// err=true;
// errMsg="上传失败!文件大小超出了限定的范围(最大"+MAXFILESIZE/1024+"K)";
//}

if(err==false){
//取得路径
//String adss=getServletContext().getRealPath("/")+"JSP\\";
//String trace=adss+myFileName;
//保存文件
//String newFileName="001."+fileType; //可自动生成文件名以防止同名覆盖
//myFile.saveAs(trace);
//myFile.saveAs("enterprise/images/"+myFileName);
Calendar calendar = Calendar.getInstance();
fileName = String.valueOf(calendar.getTimeInMillis());
if(i<=0){
normalPicName=normalPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=normalPicName; //保存路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
else{
alarmPicName=alarmPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=alarmPicName; //保存路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
}else{
out.print ("<script>alert('"+errMsg+"');this.history.go(-1);</script>");
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式