久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java實(shí)現(xiàn)文件的上傳和下載功能

      java實(shí)現(xiàn)文件的上傳和下載功能

      準(zhǔn)備工作

      (視頻教程推薦:java課程)

      需要導(dǎo)入的jar包

      java實(shí)現(xiàn)文件的上傳和下載功能

      運(yùn)行截圖

      文件上傳截圖

      java實(shí)現(xiàn)文件的上傳和下載功能

      文件下載截圖

      java實(shí)現(xiàn)文件的上傳和下載功能

      上傳文件代碼servlet

      	@WebServlet(name = "UploadServlet",value = "/upload") 	@MultipartConfig(maxFileSize = 1024*1024*5,maxRequestSize = 1024*1024*20) //1 添加MultipartConfig注解 	public class UploadServlet extends HttpServlet { 	    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 	        //存放文件的目錄 	        String realPath = request.getServletContext().getRealPath("/WEB-INF/upload"); 	        File dir=new File(realPath); 	        if(!dir.exists()){ 	            dir.mkdirs(); 	        } 	        List<String> allowExts=new ArrayList<String>(); 	        allowExts.add("jpg"); 	        allowExts.add("png"); 	        allowExts.add("gif"); 	 	        //1亂碼 	        request.setCharacterEncoding("utf-8"); 	        response.setContentType("text/html;charset=utf-8"); 	        //2使用getParts()獲取數(shù)據(jù) 	        Collection<Part> parts = request.getParts(); 	        //3遍歷 	        PrintWriter out = response.getWriter(); 	        if(parts!=null&&parts.size()>0){ 	            for (Part part : parts) { 	                //判斷表單元素是普通字段,還是文件 	                String submittedFileName = part.getSubmittedFileName(); 	                if(submittedFileName==null){//普通字段 	                    String name = part.getName(); 	                    String value = request.getParameter(name); 	                    System.out.println(name+"..."+value); 	                }else{//文件 	 	                    //判斷文件是否為"" 	                    if(submittedFileName.equals("")){ 	                        continue; 	                    } 	                    //System.out.println(submittedFileName); 	                    //從請(qǐng)求頭中獲取文件 	                    String dis = part.getHeader("content-disposition"); 	                    String filename=dis.substring(dis.lastIndexOf("filename=")+10, dis.length()-1); 	                    filename=filename.substring(filename.lastIndexOf("\")+1); 	                    System.out.println(filename); 	                    //獲取文件名的后綴 	                    String ext=filename.substring(filename.lastIndexOf(".")+1); 	                    if(!allowExts.contains(ext)){ 	                        out.println(filename+"不符合上傳文件類型要求..."); 	                        continue; 	                    } 	                    //把文件保存 	                    //1創(chuàng)建新的文件名 	                    String newFileName = UploadUtils.makeNewFileName(filename); 	                    //2創(chuàng)建新的路徑 	                    String newPath = UploadUtils.makeNewPath(realPath, filename); 	                    part.write(newPath+File.separator+newFileName); 	                    //刪除part 	                    part.delete(); 	                    out.println("上傳成功:"+filename); 	                } 	            } 	        } 	    } 	 	    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 	        doPost(request,response); 	    } 	}

      每個(gè)屬性表示的內(nèi)容

      java實(shí)現(xiàn)文件的上傳和下載功能

      文件下載代碼servlet

      @WebServlet(name = "DownLoadServlet",value = "/download") public class DownLoadServlet extends HttpServlet {     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         //亂碼         request.setCharacterEncoding("utf-8");         //獲取文件名         String uuidFilename = request.getParameter("filename");//d578be74fd864ac2a879d77b07f13793_backg.jpg         //去掉uuid         String filename=uuidFilename.substring(uuidFilename.indexOf("_")+1);         //存放文件的根路徑         String realPath = request.getServletContext().getRealPath("/WEB-INF/upload");         //獲取真正目錄         String path = UploadUtils.makeNewPath(realPath, filename);          File file=new File(path+ File.separator+uuidFilename);         if(file.exists()){             response.setHeader("content-disposition", "attachment;filename="+ URLEncoder.encode(filename, "utf-8"));             ServletOutputStream os = response.getOutputStream();             FileInputStream fis=new FileInputStream(file);             byte[] buf=new byte[1024*4];             int len=0;             while((len=fis.read(buf))!=-1){                 os.write(buf,0,len);             }         }else{             response.setContentType("text/html;charset=utf-8");             response.getWriter().write("文件不存在...");         }      }      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         doPost(request, response);     } }

      每個(gè)屬性表示的內(nèi)容

      java實(shí)現(xiàn)文件的上傳和下載功能

      讀取下載文件servlet

      @WebServlet(name = "ListFileServlet",value = "/listfile") public class ListFileServlet extends HttpServlet {     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         //1讀取可以被下載的文件         String realPath = request.getServletContext().getRealPath("/WEB-INF/upload");         HashMap<String,String> map=new HashMap<>();         UploadUtils.listFile(new File(realPath),map);         //2放入域中         request.setAttribute("map", map);         //3轉(zhuǎn)發(fā)         request.getRequestDispatcher("/list.jsp").forward(request, response);      }      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         doPost(request, response);     } }

      工具類servlet

      public class UploadUtils {     public static void main(String[] args) {         String s = makeNewFileName("aaa.jpg");         System.out.println(s);     }     /**      * 根據(jù)原始文件名產(chǎn)生一個(gè)新的文件名      * @param filename      * @return      */     public static String makeNewFileName(String filename){         //UUID 統(tǒng)一唯一標(biāo)識(shí)碼         String uuid = UUID.randomUUID().toString().replace("-", "");//默認(rèn)32位的16進(jìn)制         return uuid+"_"+filename;     }      /**      * 創(chuàng)建新的路徑      * @param path      * @param filename      * @return      */     public static String makeNewPath(String path,String filename){         int num = filename.hashCode();//01101011001011011111111111 1111 0101 0101         int path1=num&0xf;         int path2=(num>>4)&0xf;         String newPath=path+ File.separator+path1+File.separator+path2;         File dir=new File(newPath);         if(!dir.exists()){             dir.mkdirs();         }         return newPath;     }     //遍歷可以被下載的文件     public static void listFile(File dir,HashMap<String,String> map){         File[] files = dir.listFiles();         if(files!=null&&files.length>0){             for (File file : files) {                 if(file.isDirectory()){                     listFile(file, map);                 }else{                     //文件                     String uuidFilename=file.getName();                     String filename=uuidFilename.substring(uuidFilename.indexOf("_")+1);                     map.put(uuidFilename,filename);                 }             }         }     }   }

      相關(guān)教程推薦:java入門教程

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)