标签:mp3 smo dom ref gets 引入 不同的 eal orm
另一个是commons-io.jar/下载地址:http://commons.apache.org/proper/commons-io/download_io.cgi
<!DOCTYPE html> <html> <head> <title>上传文件</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <form method="post" action="updata.jsp" enctype="multipart/form-data"> <input type="text" name="nickname"> <input type="file" name="upfile"> <button type="submit">提交</button> </form> </body> </html> |
request.setCharacterEncoding("utf-8"); if (request.getContentType() != null) { DiskFileItemFactory factory = new DiskFileItemFactory();//当上传文件太大时,因为虚拟机能使用的内存时有限的,所以此时要通过临时文件来实现上传文件的保存 factory.setSizeThreshold(500);//设置是否使用临时文件的临界值(单位字节) // factory.setRepository("路径");//设置文件路径 ServletFileUpload upload = new ServletFileUpload(factory);//创建一个新的文件上传对象 //设置上传单个文件的最大字节数为100M upload.setFileSizeMax(100*1024 * 1024 ); //获取所有的表单数据 List<FileItem> items = upload.parseRequest(request); String allowext="jpg|png|mp3"; for (FileItem form : items) { if (form.isFormField()) { out.print(form.getFieldName() + "=" + new String(form.getString().getBytes("iso-8859-1"), "utf-8")); //解决编码乱码问题 } else { String filename=form.getName(); String ext=filename.substring(filename.lastIndexOf(".")+1); if (allowext.indexOf(ext)==-1) { throw new Exception("格式扩展名不符合"); } if (form.getSize()>2*1024*1024) { throw new Exception("文件过大"); } String root=request.getServletContext().getRealPath("/"); String dirs="upfile/"+new SimpleDateFormat("yyMM/ddHH/").format(Calendar.getInstance().getTime()); File file=new File(root+dirs); if (!file.exists()) { file.mkdirs(); } String name=filename+System.currentTimeMillis()+Math.random(); //转化成MD5加密格式 MessageDigest md=MessageDigest.getInstance("MD5"); md.update(name.getBytes()); String md5sString=new BigInteger(1,md.digest()).toString(16); filename=md5sString.substring(8,24)+"."+ext; file=new File(root+dirs+filename); form.write(file); // File file = new File(request.getServletContext().getRealPath("/") + "2.png"); } } } |
for( 变量类型 变量 :变量集合 ){ } form.getFieldName()//获取普通表单里的name值 form.getName() //获取文件名 |
List list = upload.parseRequest(request); 判断一个参数域是普通的表单输入域,还是文件上传域,如果该方法返回真的话,则是前者,如果为假,则是后者。是后者的情况下,就要对相应的域做相应的文件上传处理。 |
String allowext="jpg|png|mp3";//存放允许的后缀名 String filename=form.getName();//获取文件名 String ext=filename.substring(filename.lastIndexOf(".")+1);//截取点以后的后缀 if (allowext.indexOf(ext)==-1) { throw new Exception("格式扩展名不符合"); } |
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt |
其他参考:http://bbs.csdn.net/topics/391032153
标签:mp3 smo dom ref gets 引入 不同的 eal orm
原文地址:http://www.cnblogs.com/bonly-ge/p/7050622.html