struts的FormFile上传文件
/** * 利用struts的FormFile上传图片 * @param mapping * @param actionForm * @param request * @param response * @return * @throws Exception */public ActionForward upload(ActionMapping mapping, ActionForm actionForm,HttpServletRequest request, HttpServletResponse response) throws Exception {AdvertiseForm advertiseForm = (AdvertiseForm) actionForm;FormFile file=advertiseForm.getFormFile("picFile");try{String filename=FileBean.uploadFile(this.getServlet(),IConstants.UPLOAD_PATH, file, request,true);System.out.println("上次的文件名称为:"+filename);response.getWriter().print(filename);}catch (Exception e) {e.printStackTrace();response.getWriter().print("上传失败!");}return null;}
?
private FormFile picFile;//actionForm里面要设置
?
public static String uploadFile(HttpServlet servlet,String path,FormFile file, HttpServletRequest request,boolean flag){String fileName=getExtention(file.getFileName());if(file==null){return "";}if(flag){//String webapps=request.getRealPath("/");//webapps=webapps.substring(0,webapps.lastIndexOf("webapps")+"webapps".length());//path=webapps+path;path = request.getRealPath("/")+path;}else path=request.getRealPath("/")+"/resentFiles";InputStream streamin = null;OutputStream bos = null;try{File filepath = new File(path);if (!filepath.exists()) {filepath.mkdirs();}fileName=GUID.getInstance().get16()+fileName;streamin = file.getInputStream();bos = new FileOutputStream(path +"/"+fileName);int bytesRead= 0;byte[] sum = new byte[8192];int i=0;while ((bytesRead = streamin.read(sum, 0, 8192)) != -1){i=i+bytesRead;bos.write(sum, 0, bytesRead);} }catch (Exception e) {e.printStackTrace();}finally{try {if(bos!=null){bos.close();}if(streamin!=null){streamin.close();}} catch (IOException e) {e.printStackTrace();}}return fileName;}
?
private static String getExtention(String fileName) { int pos = fileName.lastIndexOf("."); if(pos<1){ return null; } return fileName.substring(pos,fileName.length()); }
?