文件上传代码
1.0先在頁面上初始化
代碼
<title>文件上傳</title></head><body><form enctype="multipart/form-data" action="test.jsp" method="post">名稱:<input type="text" name="username" /><br>文件:<input type="file" name="myfile" /><br/><input type="submit" value="提交"/></form></body> </html>enctype=多部分的表單數據,并且如果form表單的屬性中多了enctype="multipart/form-data",是不能使用request.getParameter(name屬性的)
效果圖
1.12:在WEB-ROOT的根目錄下創建一個test.jsp,實現文件上傳功能!
?
<%@page import="java.io.File"%> <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%> <%@page import="org.apache.commons.fileupload.FileItem" %> <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%//解決亂碼request.setCharacterEncoding("utf-8");//將用戶傳遞過來的request的內容顯示出來,判斷類型,如果是常規的普通表單,那么執行方式一//否則是文件域,執行方式二//01.判斷是普通表單還是文件上傳boolean flag=ServletFileUpload.isMultipartContent(request);if(flag){//定義一個解析器,來解析請求中的各個項目DiskFileItemFactory factory=new DiskFileItemFactory();//解析upload創建成功ServletFileUpload upload=new ServletFileUpload(factory);List<FileItem> filelist=upload.parseRequest(request);//每一個FileItem都代表了一個表單元素Iterator<FileItem> mytor=filelist.iterator();while(mytor.hasNext()){FileItem item=mytor.next();if(item!=null){//對當前進行驗證,是普通表單還是文件上傳if(item.isFormField()) //證明是普通表單字段{//獲取該表單元素內容(value值)String name=item.getFieldName();//表單的name屬性而不是value值if(name.equals("username")){out.print(item.getString("utf-8"));}}else{//是文件上傳String filename=item.getName();//扔到服務器目錄下 String path="/WEB-INF/folder";//相對路徑String paths=this.getServletContext().getRealPath(path);out.print(paths);File file=new File(filename);File uploadFile=new File(paths,file.getName());item.write(uploadFile);out.print("上傳成功");}}}}%>轉載于:https://www.cnblogs.com/6zhi/p/5639399.html
總結
- 上一篇: 轻量高效的开源JavaScript插件和
- 下一篇: Docker查看关联容器的卷宗在本机的存