1. 程式人生 > >Java實現多個檔案上傳(驗證檔案大小、檔案型別)

Java實現多個檔案上傳(驗證檔案大小、檔案型別)

檔案上傳是每個java開發者必須掌握的。檔案上傳有很多種實現方式,但其實也大同小異。筆人在這裡為大家介紹一種我習慣用的,上傳檔案的方式。大家先看程式碼,最後我會分享我的原始碼給大家。

  • 1、首先要準備一下需要用到的jar包。
    • commons-fileupload-1.2.1.jar
      -commons-io-1.4.jar
      可以從[(http://commons.apache.org/)]下載,當然,我的專案原始碼裡也有
      然後開始寫程式碼。
public static String fileUpload(HttpServletRequest request,HttpServletResponse response)throws Exception
{
    //允許上傳的檔案型別
String fileType = "mp3,mp4,video,rmvb,pdf,txt,xml,doc,gif,png,bmp,jpeg"; //允許上傳的檔案最大大小(100M,單位為byte) int maxSize = 1024*1024*100; response.addHeader("Access-Control-Allow-Origin", "*"); //檔案要儲存的路徑 String savePath = request.getRealPath("/") + "save/"; response.setContentType("text/html; charset=UTF-8"
); //檢查目錄 File uploadDir = new File(savePath); if ( !uploadDir.exists()) { uploadDir.mkdirs(); } if ( !uploadDir.canWrite()) { return "上傳目錄沒有寫許可權!"; } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024 * 1024); //設定緩衝區大小,這裡是1M
factory.setRepository(uploadDir); //設定緩衝區目錄 ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); List items = upload.parseRequest(request); Iterator it = items.iterator(); FileItem item = null; String fileName = ""; String name = ""; String extName = ""; String newFileName = ""; while (it.hasNext()) { item = (FileItem)it.next(); fileName = item.getName(); if (null == fileName || "".equals(fileName)) { continue; } //判斷檔案大小是否超限 if (item.getSize() > maxSize) { item.delete(); JOptionPane.showMessageDialog(null, "檔案大小超過限制!應小於" + maxSize / 1024 / 1024 + "M"); return "檔案大小超過限制!應小於" + maxSize; } //判斷檔案型別是否匹配 // System.getProperties().getProperty("file.separator")) //獲取檔名稱 name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.lastIndexOf(".")); //獲取檔案字尾名 extName = fileName.substring(fileName.indexOf(".") + 1).toLowerCase().trim(); //判斷是否為允許上傳的檔案型別 if ( !Arrays.<String> asList(fileType.split(",")).contains(extName)) { item.delete(); JOptionPane.showMessageDialog(null, "檔案型別不正確,必須為" + fileType + "的檔案!"); return "檔案型別不正確,必須為" + fileType + "的檔案!"; } SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); newFileName = name + df.format(new Date()) + "." + extName; File uploadedFile = new File(savePath, newFileName); item.write(uploadedFile); } return "success"; }
<form action="<%=basePath%>fileUpload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="file" name="file" />
    <input type="submit" value="上傳"> 
</form> 

上面程式碼就已經ok了。我的一些引數是寫死的,比如允許檔案上傳的大小,還有檔案的型別。大家最好是寫在一個配置檔案中,然後去讀取這個配置檔案,得到裡面的引數。雖然配置檔案裡的引數也是寫死,但是意義不同,作為一個程式設計師你就是給別人提供方便的,不可能每次已改就要動裡面的程式碼,只需要改配置檔案就可以了。這也是需要我們做到智慧化。

當然,上面程式碼只是做到上傳的功能,下面我會分享我的原始碼,原始碼裡面就是寫在配置檔案裡的,然後,如果上傳檔案不符合要求,就將資訊返回到前臺視覺化顯示。

下面分享一下我的原始碼:檔案上傳

如果遇到問題大家可以互相交流、切磋!

相關推薦

Java實現檔案驗證檔案大小檔案型別

檔案上傳是每個java開發者必須掌握的。檔案上傳有很多種實現方式,但其實也大同小異。筆人在這裡為大家介紹一種我習慣用的,上傳檔案的方式。大家先看程式碼,最後我會分享我的原始碼給大家。 1、首先要準備一下需要用到的jar包。 commons-fileuplo

angularjs 實現圖片及預覽

ict red input 刪除按鈕 cto ges pat ack actor 1 <div class="form-group"> 2 <label>上傳申請單</label> 3

圖片檔案上面一篇是預覽

圖片上傳和預覽是一起的,分別寫了兩個元件(上傳、預覽),在上傳中呼叫預覽,因放一起有點多故分開寫了 寫上傳元件attach <template> <div> <div class="pic-list" v-if="temp.fileList.length>

獨立使用UEditor編輯器圖片和檔案呼叫內建第三方外掛swfupload

 最近百度了一下網上的資料並看了一下ueditor的api,整理並測試了一下,發現還真好用,現在和大家分享一下 這裡配置了一個正常的ueditor編輯器和編輯器外面的兩個上傳按鈕。 首先引入js檔案 1 <script src="ueditor/ueditor.

Hadoop 裡MapReduce裡 實現job任務 包含迭代式依賴式鏈式

一、迭代式,所謂的迭代式,下一個執行的Job任務以上一個Job的輸出作為輸入,最終得到想要的結果。 這裡我只寫關鍵的程式碼了 Job job = new Job(new Configuration(),“test”); JobConf jobConf=(JobCon

基於springMVC的檔案親自實踐,完美的執行

由於是一個新手菜鳥,所以說對很多東西都不是很瞭解,最近剛好在做一個專案需要做檔案的上傳和下載,以前直接是用寫好的,這個自己動手寫了一下用了半天時間跟大家分享一下。 一.環境是SSM+Maven       首先,你需要搭建好springMC的環境,如果不會搭建的話

AJAX+Servlet3.0實現非同步檔案單個檔案檔案檔案的表單提交

   一、上傳單個檔案           1.JSP頁面程式碼       <%@ page language="java" contentType="text/html;

Java-Spring框架實現簡單的檔案圖片為例

一、開發環境搭建 下載相應的jar包: 1.commons-fileupload    2.commons-io web.xml 檔案配置: <servlet>       &

webuploader+springmvc實現檔案html+js+css原創,後臺程式碼借鑑

———————-css—————————- /*新增圖片按鈕*/ .add_resume_item { cursor: pointer; } /*遮罩層*/ .zpzs_gray { position: fixed; left: 0; to

Android實現檔案支援檔案

大家在做android專案的時候,肯定會遇到檔案上傳(比如圖片,音樂等),今天我把我剛做的一個圖片上傳功能分享一下, 基本的流程就是:定義一個HttpClient→定義post請求(HttpPost)→post請求中新增引數(包括普通引數,檔案)→使用client傳送pos

J2EE開發:struts2 檔案單個檔案檔案

<一>簡述: Struts2的檔案上傳其實也是通過攔截器來實現的,只是該攔截器定義為預設攔截器了,所以不用自己去手工配置,<interceptor name="fileU

java實現檔案以壓縮包匯出到本地

描述:使用java將多個檔案同時壓縮為壓縮包,並匯出到本地 /** *壓縮檔案並匯出 */ public static void zipFiles() throws IOException {   File file = null;   String zipFileName = "";   File[

用原生JS實現張圖片及預覽功能相容IE8

最近需要做一個圖片上傳預覽的功能(相容IE8-11、chrome、firefox等瀏覽器),網上現有的檔案上傳元件(如webuploader)總是會遇到一些相容性問題。於是我參考了一些博文(連結找不到了⊙o⊙…),自己用原生JS寫了一個支援多張圖片上傳預覽功能的Demo 先通過最終效果看一下功能:

JS簡單實現檔案無需外掛

<span class="up-btn" id="selectFile">請選擇檔案</span> <input type="file" name="fileupload" style="FILTER: alpha(opacity=0); mo

tp5 檔案圖片+音訊增刪改查

增 控制器 public function add() { if (request()->isPost()) { // dump($_POST); die; $data = [ 'title' => input('

SpringBoot檔案下載和檔案圖文詳解

最近在學習SpringBoot,以下是最近學習整理的實現檔案上傳下載的java程式碼: 1、開發環境: IDEA15+ Maven+JDK1.8 2、新建一個maven工程: 3、工程框架 4、pom.xml檔案依賴項 <proje

使用Jquery開源外掛實現檔案帶進度條

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <

阿里oss 實現檔案前端程式碼

1.本人專案使用jquery寫的,而阿里雲oss程式碼是原生js所以有些地方會兩者共用。 2.這裡只展示前端的程式碼部分,整個流程是由後臺生成簽名–>前端點選上傳檔案的時候獲取到後臺返回的accessid、host、policy、signaturecom等引數–>請求成功並獲取到

論壇設計——使用者檔案的後臺設計問題

功能描述:在設計論壇時使用者要發帖,使用者會向帖子中插入圖片,插入圖片的流程是:使用者先上傳圖片到伺服器,然後將伺服器中圖片的路徑新增到帖子中。那麼有一個問題,使用者會將要釋出的圖片上傳到伺服器的資料夾,然後將路徑放到帖子的內容中。論壇中有很多使用者,每個使用者都會發帖都會

JAVA實現客戶端圖片至伺服器SSM不使用input 標籤使用,瀏覽器圖片直接伺服器

JAVA實現客戶端圖片上傳至伺服器(SSM)(不使用input 標籤使用,瀏覽器圖片直接上傳伺服器) 這是本人第一篇部落格 想著記錄一下平時學習的過程,也提供給和我一樣正在學習java的同學們!!(如果有不懂的同學歡迎留言 有時間一定回覆,寫的不好的地方請多包涵) * 開始: 首先要