1. 程式人生 > >SpringMVC檔案的上傳下載及資料庫EXCEL匯出

SpringMVC檔案的上傳下載及資料庫EXCEL匯出

前段時間要做檔案的上傳下載,現在把它寫出來,供大家分享

首先是excel匯出資料庫

@RequestMapping("/exportCustomer")  
    public void exportCustomer(ModelMap model,HttpServletRequest request,HttpServletResponse response) {  
    	SysUser models = UserHelper.getCurrentUser();
        //TODO 如需新增條件  
        //model.addAttribute("username", nameStr);  
        //獲取需要匯出的資料List  
//        List<CMcustomer> cusList=customerService.exportCustomer(model); 
//        List<Units> cusList = unitsService.zTreeAll(models.getId());
    	List<Units> all = unitsService.getAll();
            //使用方法生成excle模板樣式  
        
        HSSFWorkbook workbook = unitsService.createExcel(all, request);  
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); // 定義檔名格式  
  
        try {  
        //定義excle名稱 ISO-8859-1防止名稱亂碼  
            String msg = new String(  
                    ("組織機構資訊_" + format.format(new Date()) + ".xls").getBytes(),  
                    "ISO-8859-1");  
            // 以匯出時間作為檔名  
            response.setContentType("application/vnd.ms-excel");  
            response.addHeader("Content-Disposition", "attachment;filename="  
                    + msg);  
            ServletOutputStream outputStream = response.getOutputStream();
            workbook.write(response.getOutputStream());  
        } catch (IOException e) {  
//            log.error(e);  
        	e.getStackTrace();
        }  
    } 

然後是檔案的上傳功能
@RequestMapping(value="/formExcel",method = RequestMethod.POST)
	@ResponseBody
	public String formExcel( MultipartFile upExcel ){
		
        try {
			String originalFilename = upExcel.getOriginalFilename();
			if(originalFilename==null){
				return "請選擇要上傳的檔案";
			}
			String uploadPath = "upload/document"+ "/" + UUID.getUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
		
					FileStorageHelper.transferFile(upExcel.getInputStream(), uploadPath);
					Document document = new Document();
					document.setUrl(uploadPath);
					documentService.save1(document);
					return "上傳檔案成功";
				
		} catch (Exception e) {
			e.printStackTrace();
				
			return "匯入檔案失敗";
		}
	}

最後是檔案下載
/**
	    *  下載檔案
	    * @param urldata 檔案路徑
	    * @param response
	    */
	   @RequestMapping("/download")
       public void download(String urldata,HttpServletResponse response){
    	   
		   String rootPath = SpringMVCUtil.getRequest().getSession().getServletContext().getRealPath("/");// 獲取專案根目錄
		   
		    try {
				File file = new File(rootPath+urldata);// path是根據日誌路徑和檔名拼接出來的
				String filename = file.getName();// 獲取日誌檔名稱
				InputStream fis = new BufferedInputStream(new FileInputStream(rootPath+urldata));
				byte[] buffer = new byte[fis.available()];
				fis.read(buffer);
				fis.close();
				response.reset();
				// 先去掉檔名稱中的空格,然後轉換編碼格式為utf-8,保證不出現亂碼,這個檔名稱用於瀏覽器的下載框中自動顯示的檔名
				response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
				response.addHeader("Content-Length", "" + file.length());
				OutputStream os = new BufferedOutputStream(response.getOutputStream());
				response.setContentType("application/octet-stream");
				os.write(buffer);// 輸出檔案
				os.flush();
				os.close();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	   
       }
檔案的下載可以自己選擇要下載的位置

前臺頁面要這樣請求下載的地址

//下載
		function updateLoad(id,name) {
        	
			$.ajax({
				type:"POST",
				url:"/Document/download",
				data:{"urldata":id},
				success:function(msg){
					
					window.open('/Document/download?urldata='+id); 
				}
			});
			
// 			alert(id);
		}

這就是基本的程式碼篇了,歡迎互相交流

相關推薦

SpringMVC檔案下載資料庫EXCEL匯出

前段時間要做檔案的上傳下載,現在把它寫出來,供大家分享 首先是excel匯出資料庫 @RequestMapping("/exportCustomer") public void expor

POI 實現 Excel 檔案下載大資料匯出處理

Java 中操作 Excel 的有兩種比較主流的工具包: JXL 和 POI 。JXL 只能操作 Excel 95、97、2000 等老版本格式資料,也即以 .xls 為字尾的 excel。而 POI 可以操作 Excel 95 及以後的版本,即可操作字尾為 .xls 和 .

JspSmartUpload 實現檔案下載Mysql實現分頁

一、寫在前面 這篇文章主要是分享使用JspSamrtUpload實現多檔案的上傳下載功能,及使用Mysql資料庫的 limit 函式實現檔案顯示列表的分頁顯示功能。 二、需要的jar包 下載後把它複製到web的lib目錄下即可。 三、關鍵程式碼 3.1 多檔案上傳前

springmvc檔案/下載

檔案上傳 1,配置檔案上傳解析器 在springmvc-servlet.xml中配置 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.Commons

簡單的node檔案下載中文亂碼問題解決

1. 基於MEAN的技術棧,使用restful風格的介面2. 在前端程式碼中放置檔案上傳按鈕和處理表單資料<div class="upload-file btn btn-sm btn-primary mb-2"> <span><i class

檔案下載自己封裝jar包

檔案上傳下載及jar包封裝 表單要求 對於表單上傳,要求使用post請求方式,並且 enctype必須是如下型別 method="post" enctype="multipart/form-data" 上傳程式碼 當表單中的型別指定為mul

SpringMVC檔案下載(單檔案、多檔案)

## 前言 大家好,我是bigsai,今天我們學習Springmvc的檔案上傳下載。 檔案上傳和下載是網際網路web應用非常重要的組成部分,它是資訊互動傳輸的重要渠道之一。你可能經常在網頁上傳下載檔案,你可能也曾沉浸於網際網路技術的神祕,而本篇就為你解開它神祕的面紗。 >本文已收錄在公眾號:`bi

SpringMVC教程3【檔案下載,靜態資源處理資料校驗】

一,檔案上傳 web.xml配置通用 <?xml version="1.0" encoding=&q

SpringMVC檔案下載

1. 檔案上傳 SpringMVC通過MultipartResolver來實現檔案上傳,預設沒有裝配,使用MultipartResolver需要加上commons-fileupload這個jar包。 1.1 配置MultipartResolver <!--配置上傳檔案控制元

easyPoi實現Excel檔案下載

easyPoi 官方API http://easypoi.mydoc.io/ pom引入 <dependency> <groupId>cn.afterturn</groupId> <

SpringMVC筆記八之檔案下載

一、檔案上傳 1、普通檔案上傳 新建頁面WebContent/file.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

SpringBoot:SpringMVC檔案Ajax非同步

一、使用Spring框架中的MultipartFile實現後臺程式碼邏輯處理 1. MultipartFile API 如下: 2. 後臺邏輯程式碼 @Controller public class FileUploadController { //檔案上傳 @Re

springmvc請路徑引數,springmvc-json-ajax使用,springmvc檔案,springmvc檔案下載,springmvc攔截器(內容較多)

按照操作,絕對都可以實現,親測。。。。。(專案所有檔案和目錄結構全都放上去了) idea工具,建立maven專案 第一步: 放置各種配置檔案: pom.xml <?xml version="1.0" encoding="UTF-8"?> <p

Springmvc檔案例子,帶圖片的Excel,並利用poi解析。

直奔主題,第一步:上傳一個帶圖片的Excel。第二步:解析該Excel檔案,得到Excel資料和圖片。 1.pom.xml <!-- 檔案上傳 --> <dependency> <groupId>commons-

Springmvc檔案(servlet3.0)/下載(ssm)以及坑點

以前在servlet上寫過檔案上傳和檔案下載,最近由於需求需要集合到ssm中,有些坑點以前都忘記了。 檔案上傳:檔案上傳首先要在xml中配置上傳資訊,ssm有強大的過濾功能,你不宣告讓某種型別進來他是進不來的,我是用的是servlet3.0的part上傳檔案,

利用FtpClient實現下載獲得檔案目錄

sun程式碼中有個FtpClient,雖然沒有把它用做公開的工具包,但我們也還是可以拿它來利用一下. Java程式碼 1./** 2. * FTP檔案上傳與下載 3. * notice: 4. * 之所以每次都要連線一次ftp是讓它的目錄重新返回到

SpringMVC——實現檔案下載

一、檔案上傳 1.引入依賴包 在pom.xml檔案中新增如下內容,引入 commons-fileupload 和 commons-io 兩個包。 <dependency> <groupId>commons-f

SSM框架-SpringMVC 例項檔案下載

目錄(?)[+] 本文詳細講解了SpringMVC例項單檔案上傳、多檔案上傳、檔案列表顯示、檔案下載。 一、新建一個Web工程,匯入相關的包 springmvc的包+commons-fileupload.jar+connom-io.jar+com

Struts2+poi實現Excel檔案並插入資料庫的操作

Struts.xml部分 <package name="com.crm.workbench.activity" namespace="/activity" extends="struts-default,json-default"> <a

使用springmvc 和nginx 搭建一個檔案下載伺服器

public final class FileUploadUtil { public static JSONObject upload(String httpurl, String fileName, InputStream inputStream) { String result