javaweb文件上传源码

		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=UTF-8");
		//上传
			try {
				//判断前台的form是否又mutipart属性
				boolean isMutipart=ServletFileUpload.isMultipartContent(request);
				if(isMutipart) {
					FileItemFactory factory=new DiskFileItemFactory();
					ServletFileUpload upload=new ServletFileUpload(factory);
					
					//设置缓冲文件的大小
					//factory.setsizeThreshold()
					//设置临时文件的目录
					//factory.setRepository(new File("...."))
					//控制上传文件的大小
					upload.setSizeMax(20480);
					
					
					
					//通过parseRequest解析form中所有请求字段,并保存到items集合中
					List<FileItem> items=upload.parseRequest(request);
					
					Iterator<FileItem> iter=items.iterator();
					while(iter.hasNext()) {
						FileItem item=iter.next();
						String itemName=item.getFieldName();
						int sno=-1;
						String sname=null;
						//判断前端字段是普通from表单字段还是文件字段、
						if(item.isFormField()) {
							if(itemName.equals("sno")) {
								//根据name字段属性判断item是sno,sname 还是其他
								sno=Integer.parseInt(item.getString("utf-8"));
							}else if(itemName.equals("sname")) {
								sname=item.getString("utf-8");
							}else {
								System.out.println("其他字段......");
							}
						}else {//spicture
							//文件上传处理
							//getfieldname 拿的是普通表单的字段
							String fileName=item.getName();
							//获取文件名的后缀,判断类型
							String ext=fileName.substring(fileName.indexOf(".")+1);
							if(!(ext.equals("png")||ext.equals("gif")||ext.equals("jpg"))) {
								System.out.println("图片类型有误,格式只能是png jpg jpg");
								return;
							}
							
							//获取文件内容上传
							//定义文件路径   一般是服务器路径
							String path=request.getSession().getServletContext().getRealPath("upload");
							File file=new File(path,fileName);
							
							item.write(file);
							System.out.println(fileName+"上传成功");
							return;
						}
						
					}
					
				}
				
				
			}catch(FileUploadBase.SizeLimitExceededException e) {
				System.out.println("上传文件大小超过限制!最大不能超过20kb");
			}catch (FileUploadException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

猜你喜欢

转载自blog.csdn.net/weixin_43878297/article/details/88878008