Struts2 上傳文件主要代碼
public File file; //與頁面上的 input file 標簽的name 一樣 public String name;/**
- 上傳文件公共方法
- @param url 地址
- @param ext 后綴名
@return 上傳成功 */ public boolean file(String url,String ext) { response = getResponse();
InputStream input = null; long time = System.currentTimeMillis(); OutputStream os = null; try { System.out.println(name); SystemParameter systemParameter = (SystemParameter) getRequest() .getSession().getServletContext() .getAttribute("systemParameter"); String path = systemParameter.getFilePath() + url ; String houzui = name.substring(name.lastIndexOf("("), name.length()); if (houzui.equals("(空白)")) { name=name.substring(0, name.indexOf("(")); } if (name.equals("流程圖")) { name="liuchen"; } // 檢查文件是否存在 File f = new File(path, name+ ext); if (f.exists()) { System.out.println(f.getAbsolutePath()); System.out.println(f.getName()); String newName = path + name + "old_" + time
- ext;
System.out.println(newName); boolean is = f.renameTo(new File(newName)); if (is == false) { f.renameTo(new File(path + name + ext));
return false; } else { // 如果存在,在讀一次改過文件的名字,如果新的名字不存在,就提示上傳失敗 File file = new File(newName); if (!file.exists()) { return false; } } } input = new FileInputStream(file);
os = new FileOutputStream(f); byte[] by = new byte[1024]; int length = input.read(by); while (length != -1) { os.write(by, 0, length); length = input.read(by); } return true; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { try { if (input != null) input.close(); if (os != null) os.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }</pre>