Posted on 2006-12-24 11:30
兵臨城下 閱讀(1853)
評論(2) 編輯 收藏 所屬分類:
Java EE
??????廢話不多說,直接看程序:
??????Web端:
<form method = "post" id = "upload" action ="servlet/UploadServlet" enctype="multipart/form-data">
<input type = "file" id = "uploadFile" name = "uploadFile">
<input type="text" name ="text1">
<input type = "submit" value = "UPLOAD">
</form>
??????Servlet端:
?public void doGet(HttpServletRequest request, HttpServletResponse response)
???throws ServletException, IOException {
??Map parameters = new HashMap();
??try {
????? FileItemFactory factory = new DiskFileItemFactory();
????? ServletFileUpload fu = new ServletFileUpload(factory);
??
????? fu.setSizeMax(4194304);
????? // 得到所有的文件,以及其它請求參數:
?????? List fileItems = fu.parseRequest(request);
?????? Iterator i = fileItems.iterator();
?????? // 依次處理每一個文件,以及請求參數:
?????? while(i.hasNext()) {
?????????? FileItem fi = (FileItem)i.next();
?????????? // 如果是文件項,則保存文件到上傳目錄
?????????? if (!fi.isFormField()) {
?????????????? // 獲得文件名,這個文件名包括路徑:
?????????????? String fileName = fi.getName();
?????????????? long filesize = fi.getSize();
?????????????? System.out.println("上傳的文件名為!!!"+fileName + " size : " + filesize);
?????????????? // 寫入文件
?????????????? fileName = fileName.substring(fileName.lastIndexOf("\\"));
?????????????? String conPath = getServletContext().getRealPath("");
?????????????? fi.write(new File(conPath + "http://uploadFolder//" +fileName));
?????????? }
?????????? else { //如果是請求參數,則保存到HashMap中
?????????????? String name = fi.getFieldName();
?????????????? String value = fi.getString();
?????????????? parameters.put(name, value);
?????????????? System.out.println(parameters);
?????????? }
?????? }
??}
??catch(Exception ex) {
????? System.out.println("上傳文件時出錯!!!");
????? ex.printStackTrace();
??}
?}
外加導入兩個包:org.apache.commons.fileupload、org.apache.commons.io