1. 程式人生 > >SSM框架下檔案的上傳下載(無內容時js彈窗提示)

SSM框架下檔案的上傳下載(無內容時js彈窗提示)

SSM框架下檔案的上傳下載

非全部原創,僅用來記錄學習過的內容,自己添加了js判空彈窗的功能

1.首先我們建立一個測試用的jsp頁面,程式碼如下。
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>檔案上傳下載</title> </head> <body> <form action="http://localhost:8080/uploadDemo/rest/file/upload" method="post" enctype="multipart/form-data"> 選擇檔案:<input type="file" name="file" width="120px">
<input type="submit" value="上傳"> </form> <hr> <form action="http://localhost:8080/uploadDemo/rest/file/down" method="get"> <input type="submit" value="下載"> </form> </body> </html>
2.在我們的maven專案的pom.xml檔案中新增fileupload檔案上傳下載jar包,不然後面的操作可能會報錯,如下。
<!-- 檔案上傳 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
3.在sring的servlet檢視解析器下面定義CommonsMultipartResolver檔案解析器,就是加入這個的時候執行專案,如果沒有fileuload相關的jar包就會報錯。
<!-- 定義檔案直譯器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <!-- 設定預設編碼 -->
    <property name="defaultEncoding" value="utf-8"></property>
    <!-- 上傳圖片最大大小5M--> 
    <property name="maxUploadSize" value="5242440"></property>  
</bean>
4.在controller層寫上springmvc上傳下載的程式碼,如下。
package com.baidu;
@RequestMapping("file")
@Controller
public class FileController {
    /**
     * 檔案上傳功能
     * @param file
     * @return
     * @throws IOException 
     */
    @RequestMapping(value="/upload",method=RequestMethod.POST)
    @ResponseBody
    public String upload(MultipartFile file,HttpServletRequest request) throws IOException{
        String path = request.getSession().getServletContext().getRealPath("upload");
        String fileName = file.getOriginalFilename();  
        File dir = new File(path,fileName);        
        if(!dir.exists()){
            dir.mkdirs();
        }
        //MultipartFile自帶的解析方法
        file.transferTo(dir);
        return "ok!";
    }

    /**
     * 檔案下載功能
     * @param request
     * @param response
     * @throws Exception
     */
    @RequestMapping("/down")
    public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{
        //模擬檔案,myfile.txt為需要下載的檔案
        String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";
        //獲取輸入流
        InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
        //假如以中文名下載的話
        String filename = "下載檔案.txt";
        //轉碼,免得檔名中文亂碼
        filename = URLEncoder.encode(filename,"UTF-8");
        //設定檔案下載頭
        response.addHeader("Content-Disposition", "attachment;filename=" + filename);  
        //1.設定檔案ContentType型別,這樣設定,會自動判斷下載檔案型別  
        response.setContentType("multipart/form-data"); 
        BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
        int len = 0;
        while((len = bis.read()) != -1){
            out.write(len);
            out.flush();
        }
        out.close();
    }
}

springmvc上傳下載很方便,程式碼直接複製使用。

5.在使用時發現未選擇檔案仍會存入後臺資料庫,因此加入了一個js彈窗,未選擇檔案時提示
<form action="" onsubmit="return checkfile()"
method="post" enctype="multipart/form-data">    
    <div>
        <label style="width:80px;float:left;margin-top:15px;">選擇檔案:</label> 
        <input class="logininput" style="width:200px;float:left;margin-top:12px;" type="file" id="file">
        <button  type="submit"
            style="float:left;width:80px;float:left;margin-top:12px;margin-left:10px">上傳</button>
    </div>
</form>

<script>
function checkfile() {
    var file = document.getElementById('file');;    
    if (file.value == '' || file.value == undefined || file.value == null) {
        alertmsg("未選擇檔案!", 'warning');
        return false;
    } else {
        return ture;
    }
}
</script>

相關推薦

SSM框架檔案下載內容js提示

SSM框架下檔案的上傳下載 非全部原創,僅用來記錄學習過的內容,自己添加了js判空彈窗的功能 1.首先我們建立一個測試用的jsp頁面,程式碼如下。 <%@ page language="java" contentType="text/html;

ssm 框架文件功能

quest let mail body ring upload gem 擴展 stream 這兩天在弄上傳文件(圖片或視頻)的功能 ,特記錄於此,其核心是字符串的拼接路徑。要求是:服務器上(Tomcat為例)保存上傳的圖片或視頻,數據庫中插入相對路徑。數據庫中的A表設置一個

檔案下載簡易體驗版

檔案上傳 寫在servlet dopost中的方法: //建立讀取的檔案的工廠類 DiskFileItemFactory factory = new DiskFileItemFactory(); //讀取request裡面流的 解析類 ServletFileUpload up

國慶七篇-----struts2的檔案下載

       struts2提供了檔案的上傳下載功能,不過需要我們對其提供相關的檔案引數。 比如檔案上傳,必須提供三種屬性,並對其提供setter和getter方法,而且必須按照以下規範命名: private File XXX; private String XXXFi

SSM框架——springmvc檔案和攔截器

檔案上傳 1.檔案上傳前提 form表單的enctype取值必須是:mutipart/form-data(預設值是:application/x-www-form-urlencoded) method屬性取值必須是Post 提供一個檔案選擇域 2.使用 Commo

springboot框架下載

專案接觸到新的框架技術:springboot+angularjs+bootstrap 其中稍微有點難度的就屬於上傳下載了 1,上傳檔案 前端樣式如上所示,點選"匯入模板檔案",瀏覽選擇檔案,點選“匯入”則上傳檔案資訊到伺服器,當上傳成功後,在右側顯示檔名,並且提供下載功

SSM框架檔案

1.匯入檔案上傳的jar包 2.圖片不是存在資料庫中,而是存在某個目錄下面,然後返回一個路徑(找圖片的路徑)     資料庫只需要儲存該路徑即可。 3.springmvc是支援檔案上傳的     在springMVC中配置檔案上傳,並限制檔案上傳的大小         這裡一定要配置ID,並且ID的

java檔案|ssm框架前臺檔案後臺接收原理

第一步: 首先是jsp的form部分程式碼: <form action="up" encType="multipart/form-data" method="post"> <label>選擇檔案</label> <

SSM框架分頁的實現封裝page.java和List<?>

添加 interface jsp頁面 har show 初始化 ring array dex 之前寫過一篇博客 java分頁的實現(後臺工具類和前臺jsp頁面),介紹了分頁的原理。 今天整合了Spring和SpringMVC和MyBatis,做了增刪改查和分頁,之前的邏輯

FTPClient實現ftp的下載包含中文檔名和中文路徑問題

整理一個ftp上傳下載的工具類,轉編碼的問題經測試都已經很好的解決,我這裡用的ftp為Windows系統下,Linux下的ftp操作寫法不一樣,下次有用到再整理: FtpUtil jar commons-net-3.3.jar maven依賴

SSM框架-SpringMVC 例項檔案下載

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

關於SpringMVC框架實現簡單的檔案下載(ssm)

關於ssm框架整合檔案的上傳和下載. 1.首先建立一個用來測試的jsp檔案上傳下載的頁面  程式碼如下 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding

檔案下載,在form表單中設定屬性enctype=“multipart/form-data”的情況,如何獲取表單提交的值?

一、問題描述 檔案上傳下載時,在form表單中設定屬性enctype=“multipart/form-data”的情況下,如何獲取表單提交的有關使用者資訊的值?(比如:textfield、radio等屬性中的值) 二、解決方法 1、情況一:沒有對user物件進行封裝 方法:

檔案下載工具類java

import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.InputStream

Android網路框架Retrofit2使用封裝:Get/Post/檔案/下載

背景 Android開發中的網路框架經過多年的發展,目前比較主流的就是Retrofit了,Retrofit2版本出現也有幾年了,為了方便使用,特封裝了一些關於Retrofit2的程式碼,分享給大家。 框架主要包括: Get請求 Post請求 檔案上傳 檔案下載

JavaEE6——檔案下載

實驗6 檔案上傳下載 一、實驗目的 掌握通過Servlet實現檔案上傳下載功能; 重點掌握commons-fileupload.jar接收瀏覽器上傳檔案,實現上傳功能; 二、實驗注意事項 首先檔案上傳表單的資料也是被封裝到request物件中的。

SSM檔案下載管理

1單檔案管理 1_1單檔案上傳 專案結構 jar包 <!--檔案上下傳--> <dependency> <groupId>commons-fileupload</groupId>

SpringBoot檔案下載的實現

本文歡迎轉載,轉載請註明出處,謝謝~(作者:喝酒不騎馬 Colton_Null) from CSDN SpringBoot後臺如何實現檔案上傳下載? 最近做的一個專案涉及到檔案上傳與下載。前端上傳採用百度webUploader外掛。有關該外掛的

伺服器檔案下載的各類方法

1. ssh 安裝SSH Secure Shell Client客戶端 下載連結 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法參考主頁 http://www.cnblogs.com/wxjnew/archive/

ssm框架實現圖片並顯示myeclips

ssm框架實現圖片上傳並顯示 第一步:匯入common-io以及common-fileupload兩個jar包,儘量新一點,老的有可能出錯 第二步:配置圖片上傳儲存的位置,針對myeclips來說,開啟檔案D:\Java\MyEclipse.metadata.me_tcat\co