示例:
index.jsp
<body>
<form action="1.jsp" method="post" enctype="multipart/form-data">
<input type="text" name="pcname"/>
<input type="file" name="pic"/>
<input type="submit" value="上传"/>
</form>
</body>
1.jsp
<body>
<%
SmartUpload smart = new SmartUpload()//实例化上传组件
String name=smart.getRequest().getParameter("pcname")//获取其他表单元素值(混合表单)
smart.initialize(pageContext) //初始化上传 *** 作
smart.upload()//上传 *** 作
smart.save("upload")//将上传文件保存在upload文件中
//smart.getFiles().getFile(i).saveAs(fileName)//当上传多文件是,可以对文件重命名,以免覆盖原文件
%>
</body>
<img src="/upload/dog.gif"/>
注:当需要限制上传文件类型时,可通过用正则表达式来判断要上传的文件后缀是否符合。
if(smart.getFiles().getFile(0)).getFileName().matches("\\w+\\.(jpg|gif)$")){
//.....
}
上面表示的是只允许后缀为jpg或gif的文件上传
// 新建一个SmartUpload对象 SmartUpload su = new SmartUpload()// 上传初始化 su.initialize(pageContext)// 设定上传限制 // 1.限制每个上传文件的最大长度。 // su.setMaxFileSize(10000)// 2.限制总上传数据的长度。 // su.setTotalMaxFileSize(20000)// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 // su.setAllowedFilesList("doc,txt")// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, jsp,htm,html扩展名的文件和没有扩展名的文件。 // su.setDeniedFilesList("exe,bat,jsp,htm,html,,")// 上传文件 su.upload().参考这个.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("")
}
// 循环取得上传所有文件
else{
for(int i=0i<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>")
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)