午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

JSP實現(xiàn)文件上傳功能

瀏覽:408日期:2022-06-07 18:47:40

本文實例為大家分享了JSP實現(xiàn)文件上傳功能的具體代碼,供大家參考,具體內(nèi)容如下

一、準備部分

需要fileupload.jar與io.jar包共同完成。構(gòu)建完成路徑后可繼續(xù)。

資源地址

二、頁面部分

<form action="UploadServlet" method="post" enctype="multipart/form-data"> 學號:<input type="text" name="sno"/><br/> 姓名:<input type="text" name="sname"/><br/> 上傳照片:<input type="file" name="spicture"/><br/> <input type="submit" value="注冊"/></form>

注意:

1.文件上傳必須要使用post,以避免用get方法時傳輸總量超過搜索框所能承載最大字符數(shù)。

2.必須加入enctype="multipart.form-data"字段

3.文件處需用“file”

三、Servlet部分

package webtest; import java.io.File;import java.io.IOException;import java.util.Iterator;import java.util.List; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileItemFactory;import org.apache.commons.fileupload.FileUploadBase;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * Servlet implementation class UploadServlet */@WebServlet("/UploadServlet")public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L;  protected void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  request.setCharacterEncoding("utf-8");// 請求編碼處理,傳輸時  response.setCharacterEncoding("utf-8");// 響應(yīng)編碼處理,傳輸時  response.setContentType("utf-8");// 響應(yīng)編碼處理,顯示時  boolean isMultipart = ServletFileUpload.isMultipartContent(request);// 判斷是否有entype="multipart/form-data"部分  if (isMultipart) {   try {    FileItemFactory factory = new DiskFileItemFactory();    ServletFileUpload upload = new ServletFileUpload(factory);        //設(shè)置上傳時的內(nèi)存緩沖區(qū)大小,超出時寫入臨時文件  10kb    ((DiskFileItemFactory) factory).setSizeThreshold(10240);//單位byte    //設(shè)置臨時文件目錄,防止系統(tǒng)空間不足    ((DiskFileItemFactory) factory).setRepository(new File(request.getSession().getServletContext().getRealPath("Uploadtemp")));//動態(tài)獲取Uploadtemp文件夾位于該項目中的位置    //控制上傳單個文件的最大值 20kb    upload.setSizeMax(20480);//單位byte        List<FileItem> items = upload.parseRequest(request);// 解析form中的所有請求字段,并保存在item中    Iterator<FileItem> iter = items.iterator();     while (iter.hasNext()) {     // 解析時無順序,因此需根據(jù)名字查找     FileItem item = iter.next();     if (item.isFormField()) {//非文件數(shù)據(jù)      String itemName = item.getFieldName();//獲取非文件的范圍數(shù)據(jù)名      if (itemName.equals("sno")) {       int sno = -1;       sno = Integer.parseInt(item.getString("utf-8"));      }      else if (itemName.equals("sname")) {       String sname = null;        sname = item.getString("utf-8");       }       else {       System.out.println("其他字段...");      }      } else {//文件上傳      String fileName = item.getName();//獲取文件范圍數(shù)據(jù)。路徑及其名稱      //判斷文件類型      String ext = fileName.substring(fileName.indexOf(".")+1);      if(!(ext.equals("png")||ext.equals("gif")||ext.equals("jpg"))) {       System.out.println("僅支持png.gif,jpg類型文件");       return ;      }      String path = request.getSession().getServletContext().getRealPath("Upload");//動態(tài)獲取Upload文件夾位于該項目中的位置      File file = new File(path,fileName);      item.write(file);//定義上傳路徑,多為服務(wù)器路徑      System.out.println(fileName+"上傳成功");     }     item.delete();//刪除臨時目錄的文件    }   }    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();   }  } }  /**  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse  *      response)  */ protected void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  // TODO Auto-generated method stub  doGet(request, response); } }

注:

1.若該處標紅且鼠標懸停后未找到包,則可以使用"alt"+"/"組合鍵選擇下圖第一個類來導入。

2.由于若Upload與Uploadtemp文件存放于tomcat對應(yīng)的項目下,每一次通過eclipse更新代碼,會將eclipse下代碼直接覆蓋,因而兩個文件夾會直接被覆蓋掉。可以在eclipse中新建,或通過絕對/相對路徑于其他文件夾中來設(shè)置。

3.臨時文件中的數(shù)據(jù)會保留很短的時間,添加sleep讓程序休眠也許可以看到。即使無item.delete(),在整個會話完成后,臨時文件也會被刪除。

4.若報錯無法找到文件,請嘗試用瀏覽器若谷歌進行操作,而不是用Eclipse自帶的。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持。

標簽: JSP
相關(guān)文章:
主站蜘蛛池模板: 午夜精品福利在线观看 | 在线免费观看a视频 | 天天看毛片 | 欧美日韩字幕 | 亚洲美女毛片 | 色婷婷国产精品综合在线观看 | 国产一区二区免费在线 | 亚洲一区二区在线观看视频 | 欧美日韩中文 | 性欧美疯狂猛交69hd | 涩涩网址 | 黄色在线免费网站 | 日本爱爱网址 | 亚洲视频在线观看一区 | 激情视频一区二区三区 | 99久久这里只有精品 | 亚洲国产精品久久久久久 | 国产男女无套免费网站 | 踩踏天堂 | 久久成人综合 | 国产亚洲精品久久久久久豆腐 | 特级丰满少妇 | 亚州欧美日韩 | 成人av在线网 | 欧美日韩一区三区 | 少妇精品一区二区三区 | 国产成人专区 | 黄色w站 | 国产成人精 | 久久成人免费 | 国产女人高潮毛片 | 午夜免费精品 | 亚洲欧美日本一区 | 岛国片在线免费观看 | 99精品热视频| 毛片网站免费观看 | 亚洲国产精品久久久久久 | 日韩欧美影院 | 亚洲人体av | 午夜在线免费观看视频 | 色在线观看视频 |