/** * 利用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()); }
?