1. 程式人生 > >檔案上傳下載(簡易體驗版)

檔案上傳下載(簡易體驗版)

檔案上傳

寫在servlet dopost中的方法:
//建立讀取的檔案的工廠類
		DiskFileItemFactory factory = new DiskFileItemFactory();
		//讀取request裡面流的 解析類
		ServletFileUpload upload = new ServletFileUpload(factory);
		//中文亂碼處理
		upload.setHeaderEncoding("UTF-8");
		
		try {
			List<FileItem> list = upload.parseRequest(request);
			
			for (FileItem fileItem : list) {
				System.out.println(fileItem.getName());
				System.out.println(fileItem.getFieldName());
				//從request中拿到輸入流
				InputStream is = fileItem.getInputStream();
				OutputStream os = new FileOutputStream("F://"+fileItem.getName());
				int i = 0;
				while((i=is.read())!=-1){
					os.write(i);
				}
				os.close();
				is.close();
			}
			
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

檔案下載


		String path="F://wy2.txt";//讀取的檔案的地址
     	//必須且固定的頭,照搬就是,注意後面的path和filename
        response.setContentType(getServletContext().getMimeType(path));  
        //設定Content-Disposition
        response.setHeader("Content-Disposition", "attachment;filename=1.txt");
        //讀取目標檔案,通過response將目標檔案寫到客戶端 
        FileInputStream fis = new FileInputStream(new File(path));
        ServletOutputStream output = response.getOutputStream();
        int i = 0;
        while((i=fis.read())!=-1){
        	output.write(i);
        }
        output.close();
        fis.close();