Java實現多個檔案上傳(驗證檔案大小、檔案型別)
檔案上傳是每個java開發者必須掌握的。檔案上傳有很多種實現方式,但其實也大同小異。筆人在這裡為大家介紹一種我習慣用的,上傳檔案的方式。大家先看程式碼,最後我會分享我的原始碼給大家。
- 1、首先要準備一下需要用到的jar包。
- commons-fileupload-1.2.1.jar
-commons-io-1.4.jar
可以從[(http://commons.apache.org/)]下載,當然,我的專案原始碼裡也有
然後開始寫程式碼。
- commons-fileupload-1.2.1.jar
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的同學們!!(如果有不懂的同學歡迎留言 有時間一定回覆,寫的不好的地方請多包涵) * 開始: 首先要