真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能-創(chuàng)新互聯(lián)

如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元桂陽(yáng)做網(wǎng)站,已為上家服務(wù),為桂陽(yáng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

項(xiàng)目結(jié)構(gòu)如下:


如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能

主要的是FileUploadController,doupload.jsp,up.jsp,springmvc.xml

1.先編寫(xiě)up.jsp


 

上傳者:

   

選擇文件:

   

選擇文件:

   

以上便是up.jsp的核心代碼;

2.編寫(xiě)doupload.jsp

<%
 request.setCharacterEncoding("utf-8");
 String uploadFileName = ""; //上傳的文件名
 String fieldName = ""; //表單字段元素的name屬性值
 //請(qǐng)求信息中的內(nèi)容是否是multipart類型
 boolean isMultipart = ServletFileUpload.isMultipartContent(request);
 //上傳文件的存儲(chǔ)路徑(服務(wù)器文件系統(tǒng)上的絕對(duì)文件路徑)
 String uploadFilePath = request.getSession().getServletContext().getRealPath("upload/" );
 if (isMultipart) {
 FileItemFactory factory = new DiskFileItemFactory();
 ServletFileUpload upload = new ServletFileUpload(factory);
 try {
 //解析form表單中所有文件
 List items = upload.parseRequest(request);
 Iterator iter = items.iterator();
 while (iter.hasNext()) { //依次處理每個(gè)文件
 FileItem item = (FileItem) iter.next();
 if (item.isFormField()){ //普通表單字段
 fieldName = item.getFieldName(); //表單字段的name屬性值
 if (fieldName.equals("user")){
 //輸出表單字段的值
 out.print(item.getString("UTF-8")+"上傳了文件。
");  }  }else{ //文件表單字段  String fileName = item.getName();  if (fileName != null && !fileName.equals("")) {  File fullFile = new File(item.getName());  File saveFile = new File(uploadFilePath, fullFile.getName());  item.write(saveFile);  uploadFileName = fullFile.getName();  out.print("上傳成功后的文件名是:"+uploadFileName);   out.print("\t\t下載鏈接:"+""+uploadFileName+"");  out.print("
");   }  }  }  } catch (Exception e) {  e.printStackTrace();  }  } %>

該頁(yè)面主要是內(nèi)容是,通過(guò)解析request,并設(shè)置上傳路徑,創(chuàng)建一個(gè)迭代器,先進(jìn)行判空,再通過(guò)循環(huán)來(lái)實(shí)現(xiàn)多個(gè)文件的上傳,再輸出文件信息的同時(shí)打印文件下載路徑。

效果圖:

如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能

如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能

3.編寫(xiě)FilterController實(shí)現(xiàn)文件下載的功能(相對(duì)上傳比較簡(jiǎn)單):

@Controller
public class FileUploadController {
 @RequestMapping(value="/download")
 public ResponseEntity download(HttpServletRequest request,HttpServletResponse response,@RequestParam("name") String filename)throws Exception { 
 //下載顯示的文件名,解決中文名稱亂碼問(wèn)題 
 filename=new String(filename.getBytes("iso-8859-1"),"UTF-8");
 //下載文件路徑
 String path = request.getServletContext().getRealPath("/upload/");
 File file = new File(path + File.separator + filename);
 HttpHeaders headers = new HttpHeaders(); 
 //下載顯示的文件名,解決中文名稱亂碼問(wèn)題 
 String downloadFielName = new String(filename.getBytes("iso-8859-1"),"UTF-8");
 //通知瀏覽器以attachment(下載方式)打開(kāi)圖片
 headers.setContentDispositionFormData("Content-Disposition", downloadFielName); 
 //application/octet-stream : 二進(jìn)制流數(shù)據(jù)(最常見(jiàn)的文件下載)。
 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
 return new ResponseEntity(FileUtils.readFileToByteArray(file), 
 headers, HttpStatus.CREATED); 
 }
}

4.實(shí)現(xiàn)上傳文件的功能還需要在springmvc中配置bean:

 
 
  
 10485760 
  
 
 
 UTF-8
 

完整代碼如下:

up.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 


 
 File控件
 
 
 
 
 

上傳者:

   

選擇文件:

   

選擇文件:

   

   

doupload.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="java.io.*,java.util.*"%>
<%@page import="org.apache.commons.fileupload.*"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
 



上傳處理頁(yè)面


<%
 request.setCharacterEncoding("utf-8");
 String uploadFileName = ""; //上傳的文件名
 String fieldName = ""; //表單字段元素的name屬性值
 //請(qǐng)求信息中的內(nèi)容是否是multipart類型
 boolean isMultipart = ServletFileUpload.isMultipartContent(request);
 //上傳文件的存儲(chǔ)路徑(服務(wù)器文件系統(tǒng)上的絕對(duì)文件路徑)
 String uploadFilePath = request.getSession().getServletContext().getRealPath("upload/" );
 if (isMultipart) {
 FileItemFactory factory = new DiskFileItemFactory();
 ServletFileUpload upload = new ServletFileUpload(factory);
 try {
 //解析form表單中所有文件
 List items = upload.parseRequest(request);
 Iterator iter = items.iterator();
 while (iter.hasNext()) { //依次處理每個(gè)文件
 FileItem item = (FileItem) iter.next();
 if (item.isFormField()){ //普通表單字段
 fieldName = item.getFieldName(); //表單字段的name屬性值
 if (fieldName.equals("user")){
 //輸出表單字段的值
 out.print(item.getString("UTF-8")+"上傳了文件。
");  }  }else{ //文件表單字段  String fileName = item.getName();  if (fileName != null && !fileName.equals("")) {  File fullFile = new File(item.getName());  File saveFile = new File(uploadFilePath, fullFile.getName());  item.write(saveFile);  uploadFileName = fullFile.getName();  out.print("上傳成功后的文件名是:"+uploadFileName);   out.print("\t\t下載鏈接:"+""+uploadFileName+"");  out.print("
");   }  }  }  } catch (Exception e) {  e.printStackTrace();  }  } %>

FileUploadController.java

package ssm.me.controller;
 
import java.io.File;
import java.net.URLDecoder;
import java.util.Iterator;
import java.util.List;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.junit.runners.Parameterized.Parameter;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
 
 
@Controller
public class FileUploadController {
 @RequestMapping(value="/download")
 public ResponseEntity download(HttpServletRequest request,HttpServletResponse response,@RequestParam("name") String filename)throws Exception { 
 //下載顯示的文件名,解決中文名稱亂碼問(wèn)題 
 filename=new String(filename.getBytes("iso-8859-1"),"UTF-8");
 //下載文件路徑
 String path = request.getServletContext().getRealPath("/upload/");
 File file = new File(path + File.separator + filename);
 HttpHeaders headers = new HttpHeaders(); 
 //下載顯示的文件名,解決中文名稱亂碼問(wèn)題 
 String downloadFielName = new String(filename.getBytes("iso-8859-1"),"UTF-8");
 //通知瀏覽器以attachment(下載方式)打開(kāi)圖片
 headers.setContentDispositionFormData("Content-Disposition", downloadFielName); 
 //application/octet-stream : 二進(jìn)制流數(shù)據(jù)(最常見(jiàn)的文件下載)。
 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
 return new ResponseEntity(FileUtils.readFileToByteArray(file), 
 headers, HttpStatus.CREATED); 
 }
}

SpringMVC.xml(僅供參考,有的地方不可以照搬)



 
 
 
 
 
 
  
 
  
 10485760 
  
 
 
 UTF-8
 
 
 

web.xml(僅供參考,有的地方不可以照搬)



 Student
 
 index.html
 index.htm
 index.jsp
 default.html
 default.htm
 default.jsp
 
 
 springmvc
 org.springframework.web.servlet.DispatcherServlet
 
 
 contextConfigLocation
 classpath:springmvc.xml
 
 1
 
 
 springmvc
 *.action
 
 
 contextConfigLocation
 classpath:spring/applicationContext-*.xml
 
 
 org.springframework.web.context.ContextLoaderListener
 

關(guān)于如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


網(wǎng)站名稱:如何在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)文件上傳和下載功能-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/hcjsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部