国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringMVC】文件上傳與下載、JREBEL使用

這篇具有很好參考價值的文章主要介紹了【SpringMVC】文件上傳與下載、JREBEL使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、引言

二、文件的上傳

1、單文件上傳

1.1、數(shù)據(jù)表準備

1.2、添加依賴

1.3、配置文件

1.4、編寫表單

1.5、編寫controller層

2、多文件上傳

2.1、編寫form表單

2.2、編寫controller層

2.3、測試

三、文件下載

四、JREBEL使用

1、下載注冊

2、離線設(shè)置


一、引言

為什么要使用文件的上傳下載?作用?

SpringMVC文件上傳下載是一個常見的功能,它可以讓用戶上傳文件到服務(wù)器或者從服務(wù)器下載文件。這對于許多Web應(yīng)用程序來說是必不可少的功能,比如在線存儲、文檔管理系統(tǒng)等。SpringMVC提供了一些方便的注釋和API,可以使文件上傳和下載變得非常簡單。在文件上傳方面,SpringMVC提供了@RequestParam注釋和MultipartFile類,可以輕松地處理上傳的文件。在文件下載方面,SpringMVC提供了ResponseEntity類,可以將文件作為響應(yīng)發(fā)送給客戶端。

二、文件的上傳

1、單文件上傳

1.1、數(shù)據(jù)表準備

根據(jù)自己的表來也是可以的,只是用來保存數(shù)據(jù)

1.2、添加依賴

在你的spring mvc里面的pom.xml里面添加文件上傳的依賴

<dependencies>        
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload.version}</version>
        </dependency>
</dependencies>

1.3、配置文件

在自己的spring-mvc.xml文件里面添加配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 必須和用戶JSP 的pageEncoding屬性一致,以便正確解析表單的內(nèi)容 -->
    <property name="defaultEncoding" value="UTF-8"></property>
    <!-- 文件最大大小(字節(jié)) 1024*1024*50=50M-->
    <property name="maxUploadSize" value="52428800"></property>
    <!--resolveLazily屬性啟用是為了推遲文件解析,以便捕獲文件大小異常-->
    <property name="resolveLazily" value="true"/>
</bean>

下面我提供我的文件配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.3.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--1) 掃描com.tgq及子子孫孫包下的控制器(掃描范圍過大,耗時)-->
    <context:component-scan base-package="com.tgq"/>

    <!--2) 此標簽?zāi)J注冊DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter -->
    <mvc:annotation-driven/>

    <!--3) 創(chuàng)建ViewResolver視圖解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- viewClass需要在pom中引入兩個包:standard.jar and jstl.jar -->
        <property name="viewClass"
                  value="org.springframework.web.servlet.view.JstlView"></property>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!--4) 單獨處理圖片、樣式、js等資源 -->
    <!--        <mvc:resources location="/static/" mapping="/static/**"/>-->
    <!--    處理文件上傳下載問題-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 必須和用戶JSP 的pageEncoding屬性一致,以便正確解析表單的內(nèi)容 -->
        <property name="defaultEncoding" value="UTF-8"></property>
        <!-- 文件最大大小(字節(jié)) 1024*1024*50=50M-->
        <property name="maxUploadSize" value="52428800"></property>
        <!--resolveLazily屬性啟用是為了推遲文件解析,以便捕獲文件大小異常-->
        <property name="resolveLazily" value="true"/>
    </bean>
    <!--  處理controller層發(fā)送請求到biz,會經(jīng)過切面的攔截處理  -->
    <aop:aspectj-autoproxy/>
</beans>

1.4、編寫表單

表單提交方式為method="post"enctype="multipart/form-data"

<%--
  Created by IntelliJ IDEA.
  User: tgq
  Date: 9/9/2023
  Time: 下午2:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>圖片上傳</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/sc/upload" method="post" enctype="multipart/form-data">
    <label>編號:</label><input type="text" name="cid" readonly="readonly" value="${param.cid}"/><br/>
    <label>圖片:</label><input type="file" name="zx"/><br/>
    <input type="submit" value="上傳圖片"/>
</form>
</body>
</html>

上傳圖片的name名字不能和數(shù)據(jù)庫表名的列名一樣,但是必須要和后端的代碼的名字一樣

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

1.5、編寫controller層

@Controller
@RequestMapping("/sc")
public class StrutsClasController {

    @Autowired
    private StrutsClasBiz strutsClasBiz;

 /**
     * 文件上傳
     * <p>
     * //     * @param req
     * //     * @param strutsClas
     *
     * @param zx
     * @return
     */
    @RequestMapping(value = "/upload")
    public String upload(StrutsClas strutsClas, MultipartFile zx) {
//    public String upload(HttpServletRequest req, StrutsClas strutsClas, MultipartFile pic) {
        try {
            //思路:
            //1) 將上傳圖片保存到服務(wù)器中的指定位置
//            本地保存地址
//            String dir = PropertiesUtil.getValue("dir");
              String dir="d:/";
//            網(wǎng)絡(luò)保存地址/upload/
//            String server = PropertiesUtil.getValue("server");
              String server="/upload/";
//            文件名
            String filename = zx.getOriginalFilename();
//            System.out.println("文件名:" + filename);
//            文件類別
//            System.out.println("文件類別" + zx.getContentType());
            System.out.println(strutsClas);
            FileUtils.copyInputStreamToFile(zx.getInputStream(), new File(dir + filename));
            //2) 更新數(shù)據(jù)庫表t_struts_class圖片記錄
            strutsClas.setPic(server + filename);
            strutsClasBiz.updateByPrimaryKeySelective(strutsClas);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redirect:list";
    }
}

配置tomcat的時候記得添加upload地址映射

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

2、多文件上傳

2.1、編寫form表單

<form method="post" action="/sc/uploads" enctype="multipart/form-data">
    <input type="file" name="files" multiple>
    <button type="submit">上傳</button>
</form>

2.2、編寫controller層

 /**
     * 多文件上傳
     *
     * @param req
     * @param clas
     * @param files
     * @return
     */
    @RequestMapping("/uploads")
    public String uploads(HttpServletRequest req,MultipartFile[] files) {
        try {
            StringBuffer sb = new StringBuffer();
            for (MultipartFile cfile : files) {
                //思路:
                //1) 將上傳圖片保存到服務(wù)器中的指定位置
                String dir = "D:/temp/upload/";
                String server = "/upload/";
                String filename = cfile.getOriginalFilename();
                FileUtils.copyInputStreamToFile(cfile.getInputStream(), new File(dir + filename));
                sb.append(filename).append(",");
            }
            System.out.println(sb.toString());

        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redirect:list";
    }

2.3、測試

但我們選擇多個文件上傳
【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis
我們的本地文件為空

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis
當(dāng)我們上傳之后本地就會進行上傳

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

運用到我們的數(shù)據(jù)庫也是一樣的

三、文件下載

根據(jù)自己的表來進行操作

<a href="${pageContext.request.contextPath }/sc/download?cid=${b.cid}">下載圖片</a>

編寫編寫controller層方法

/**
     * 文件下載
     *
     * @param strutsClas
     * @param req
     * @return
     */
    @RequestMapping(value = "/download")
    public ResponseEntity<byte[]> download(StrutsClas strutsClas, HttpServletRequest req) {

        try {
            //先根據(jù)文件id查詢對應(yīng)圖片信息
            StrutsClas strutsClas1 = this.strutsClasBiz.selectByPrimaryKey(strutsClas.getCid());
//需要下載的地址
            String diskPath = PropertiesUtil.getValue("dir");
//服務(wù)器里面保存圖片的地址
            String reqPath = PropertiesUtil.getValue("server");
            String realPath = strutsClas1.getPic().replace(reqPath, diskPath);
            String fileName = realPath.substring(realPath.lastIndexOf("/") + 1);
            //下載關(guān)鍵代碼
            File file = new File(realPath);
            HttpHeaders headers = new HttpHeaders();//http頭信息
            String downloadFileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");//設(shè)置編碼
            headers.setContentDispositionFormData("attachment", downloadFileName);
            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
            //MediaType:互聯(lián)網(wǎng)媒介類型  contentType:具體請求中的媒體類型信息
            return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

當(dāng)我們點擊下載的時候就會進行下載

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

四、JREBEL使用

1、下載注冊

搜索插件JRebel 并且下載,安裝成功之后會讓你重啟,重啟之后按操作來

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

在彈出框里面進行注冊

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

在第一個里面填寫?http://127.0.0.1:8888/GUID ??

GUID:更改為GUID online erstellen? 里面生成的ID填寫

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis?

最后確認注冊

啟動你的代理。然后運行JRebel

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis

2、離線設(shè)置

進入我們的設(shè)置,前提是我們要開始我們的代理才能進行這個操作

【SpringMVC】文件上傳與下載、JREBEL使用,spring系列,java,spring,開發(fā)語言,mybatis文章來源地址http://www.zghlxwxcb.cn/news/detail-727056.html

到了這里,關(guān)于【SpringMVC】文件上傳與下載、JREBEL使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring6中刪除了CommonsMultipartResolver類后,使用springmvc如何上傳文件

    Spring6中刪除了CommonsMultipartResolver類后,使用springmvc如何上傳文件

    ?在新的Spring6中,官方刪除了之前上傳文件使用的CommonsMultipartResolver類,導(dǎo)致之前的上傳文件方法行不通了。 我們可以在Spring6官網(wǎng)中看到官方的聲明: 大致意思就是: CommonsMultipartResolver從 Spring Framework 6.0 及其新的 Servlet 5.0+ 基線開始,基于 Apache Commons FileUpload 的過時版本不

    2024年01月16日
    瀏覽(19)
  • SpringMVC 文件上傳和下載

    SpringMVC 文件上傳和下載

    Spring MVC 提供了簡單而強大的文件上傳和下載功能。 下面是對兩者的簡要介紹: 文件上傳: 在Spring MVC中進行文件上傳的步驟如下: 在表單中設(shè)置 enctype=“multipart/form-data”,這樣瀏覽器會將表單數(shù)據(jù)以二進制流的形式進行傳輸。 在控制器方法中,使用 @RequestParam 注解來接收

    2024年01月17日
    瀏覽(27)
  • SpringMVC之文件上傳和下載

    實現(xiàn)下載文件和上傳文件的功能。 使用ResponseEntity實現(xiàn)下載文件的功能 文件上傳要求form表單的請求方式必須為post,并且添加屬性enctype=“multipart/form-data” SpringMVC中將上傳的文件封裝到MultipartFile對象中,通過此對象可以獲取文件相關(guān)信息。 步驟: 添加依賴 在SpringMVC的配置

    2024年02月10日
    瀏覽(24)
  • SpringMVC實現(xiàn)文件上傳&下載(2)

    文件上傳步驟 第一步:由于SpringMVC使用的是commons-fileupload實現(xiàn),故將其組件引入項目中,這里用到的是commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar。 第二步:spring-mvx中配置MultipartResolver處理器??稍诖思尤雽ι蟼魑募膶傩韵拗?。 第三步:在Controller的方法中添加MultipartFile參數(shù)。

    2024年03月09日
    瀏覽(29)
  • SpringMVC 實現(xiàn)文件的上傳和下載

    SpringMVC 實現(xiàn)文件的上傳和下載

    SpringMVC 是一個基于 Java 的 Web 框架,它提供了方便的文件上傳和下載功能。下面是它的實現(xiàn)原理簡要描述: 文件上傳: 客戶端通過表單(HTML 的 標簽)將文件選擇并提交到服務(wù)器。 服務(wù)器接收到請求后,SpringMVC 會將字節(jié)流形式的文件內(nèi)容封裝成 MultipartFile 對象。 SpringMVC 使

    2024年02月05日
    瀏覽(33)
  • 11、SpringMVC之文件下載和上傳

    11、SpringMVC之文件下載和上傳

    創(chuàng)建名為spring_mvc_file的新module,過程參考9.1節(jié)和9.5節(jié) 注意:springmvc 根據(jù)bean的id來獲取文件解析器,因此必須設(shè)置 id 屬性,且屬性值必須為 multipartResolver 如果上傳了同名的文件,那新的文件就會覆蓋舊的文件; 因此需要通過一個機制,保證上傳后的文件名的不會和新上傳的

    2024年02月05日
    瀏覽(25)
  • SpringMVC Day 08 : 文件上傳下載

    SpringMVC Day 08 : 文件上傳下載

    文件上傳和下載是 Web 開發(fā)中的重要環(huán)節(jié),但它們往往不那么容易實現(xiàn)。幸運的是,Spring MVC 提供了一套簡單而又強大的解決方案,讓我們可以專注于業(yè)務(wù)邏輯,而不必過多關(guān)注底層的文件處理細節(jié)。 在本篇博客中,我們將學(xué)習(xí)如何利用 Spring MVC 實現(xiàn)文件上傳和下載功能。首

    2024年02月06日
    瀏覽(27)
  • Java 使用OSS 文件上傳+下載 簡單入門

    官方SDK文檔:Java對象/文件_對象存儲-阿里云幫助中心?? ????????阿里云對象存儲OSS(Object Storage Service)為您提供基于網(wǎng)絡(luò)的數(shù)據(jù)存取服務(wù)。使用OSS,可以通過網(wǎng)絡(luò)隨時存儲和調(diào)用包括文本、圖片、音視頻在內(nèi)的各類數(shù)據(jù)文件;可以通過OSS控制臺創(chuàng)建Bucket,并將文件上傳

    2024年02月10日
    瀏覽(26)
  • Java spring-boot項目中如何上傳下載文件或圖片到spring-boot規(guī)定的非靜態(tài)目錄

    spring-boot的項目,雖然它自己定義了一個靜態(tài)文件的存儲目錄,但是這個目錄一般是作為前端靜態(tài)文件的目錄來作為使用的。如果使用這個靜態(tài)目錄來作為我們上傳文件的目錄會有一個比較尷尬的地方:將spring-boot打包成為jar包后,隨著上傳圖片的增多,這個jar包也會跟著變大

    2024年02月16日
    瀏覽(20)
  • 文件上傳下載系列——如何實現(xiàn)文件秒傳

    文件上傳下載系列——如何實現(xiàn)文件秒傳

    ??簡介: ??核心思想: MD5是什么? 實現(xiàn)步驟: ??實操: 1、java生成文件MD5碼 2、javascript生成文件MD5碼 ??基于秒傳的分片上傳下載 上傳: 下載: ??MD5存儲位置 1、持久化到數(shù)據(jù)庫中 2、存儲到redis中 ??總結(jié) ????????文件秒傳是指在文件上傳過程中,如果上傳的文件

    2024年02月01日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包