SpringMVC實現(xiàn)文件上傳下載的全過程_第1頁
SpringMVC實現(xiàn)文件上傳下載的全過程_第2頁
SpringMVC實現(xiàn)文件上傳下載的全過程_第3頁
SpringMVC實現(xiàn)文件上傳下載的全過程_第4頁
SpringMVC實現(xiàn)文件上傳下載的全過程_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第SpringMVC實現(xiàn)文件上傳下載的全過程filter-nameHiddenHttpMethodFilter/filter-name

filter-classorg.springframework.web.filter.HiddenHttpMethodFilter/filter-class

/filter

filter-mapping

filter-nameHiddenHttpMethodFilter/filter-name

url-pattern/*/url-pattern

/filter-mapping

!--注冊前端控制器DispatcherServlet--

servlet

servlet-nameDispatcherServlet/servlet-name

servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class

init-param

param-namecontextConfigLocation/param-name

param-valueclasspath:springMVC.xml/param-value

/init-param

load-on-startup1/load-on-startup

/servlet

servlet-mapping

servlet-nameDispatcherServlet/servlet-name

url-pattern//url-pattern

/servlet-mapping

/web-app

springMVC.xml

xmlversion=1.0encoding=UTF-8

beansxmlns=/schema/beans

xmlns:xsi=/2001/XMLSchema-instance

xmlns:context=/schema/context

xmlns:mvc=/schema/mvc

xsi:schemaLocation=/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/mvc/schema/mvc/spring-mvc.xsd

!--掃描組件--

context:component-scanbase-package=com.vector/

!--配置Thymeleaf視圖解析器--

beanid=viewResolver>

實現(xiàn)頁面跳轉(zhuǎn),vue文件解析,上傳內(nèi)容解析的關(guān)鍵

file.html內(nèi)容demo

body

ath:href=@{/testDown}rel=externalnofollow下載1.jpg/a

formth:action=@{/testUp}method=postenctype=multipart/form-data

頭像:inputtype=filename=photobr

inputtype=submitvalue=上傳

/form

/body

二、實現(xiàn)文件下載,上傳功能

packagecom.vector.controller;

importorg.springframework.beans.factory.annotation.Value;

importorg.springframework.http.HttpHeaders;

importorg.springframework.http.HttpStatus;

importorg.springframework.http.ResponseEntity;

importorg.springframework.stereotype.Controller;

importorg.springframework.util.MultiValueMap;

importorg.springframework.web.bind.annotation.RequestMapping;

importorg.springframework.web.multipart.MultipartFile;

importjavax.annotation.Resource;

importjavax.servlet.ServletContext;

importjavax.servlet.http.HttpSession;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.UUID;

@Controller

publicclassFileUpAndDownController{

@RequestMapping(/testDown)

publicResponseEntitybyte[]testResponseEntity(HttpSessionsession)throwsIOException{

//獲取ServletContext對象

ServletContextservletContext=session.getServletContext();

//獲取服務(wù)器中文件的真實路徑

StringrealPath=servletContext.getRealPath(/static/img/1.jpg

//創(chuàng)建輸入流

InputStreamis=newFileInputStream(realPath);

//創(chuàng)建字節(jié)數(shù)組

byte[]bytes=newbyte[is.available()];

//將流讀到字節(jié)數(shù)組中

is.read(bytes);

//創(chuàng)建HttpHeaders對象設(shè)置響應(yīng)頭信息

MultiValueMapString,Stringheaders=newHttpHeaders();

//設(shè)置要下載方式以及下載文件的名字

//Content-Disposition固定回復(fù)內(nèi)容格式attachment以附件形式下載filename=1.jpg文件名

//可以將filename拼接為動態(tài)命名

headers.add(Content-Disposition,attachment;filename=1.jpg

//設(shè)置響應(yīng)狀態(tài)碼

HttpStatusstatusCode=HttpStatus.OK;

//創(chuàng)建ResponseEntity對象

ResponseEntitybyte[]responseEntity=newResponseEntity(bytes,headers,statusCode);

//關(guān)閉輸入流

is.close();

returnresponseEntity;

@RequestMapping(/testUp)

publicStringtestUp(@Value(multipartResolver)MultipartFilephoto,HttpSessionsession)throwsIOException{

//獲取上傳的文件的文件名

StringfileName=photo.getOriginalFilename();

//處理文件重名問題

//重名問題是java.io中寫入同一文件默認(rèn)覆蓋原文件內(nèi)容導(dǎo)致圖片被覆蓋.

//獲取文件名后綴

StringsuffixName=fileName.substring(fileName.lastIndexOf(.));

//將UUID作為文件名uuid是32位隨機(jī)數(shù),幾乎不可能會重復(fù)

fileName=UUID.randomUUID().toString()+suffixName;

//獲取服務(wù)器中photo目錄的路徑

ServletContextservletContext=session.getServletContext();

StringphotoPath=servletContext.getRealPath(photo

Filefile=newFile(photoPath);

//判斷服務(wù)器是否存在該路徑

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論