激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 基于html5+java實現大文件上傳實例代碼

基于html5+java實現大文件上傳實例代碼

2020-03-22 12:58yjm199 JAVA教程

本文通過一段實例代碼給大家介紹基于html5+java實現大文件上傳,涉及到html5 java 文件上傳相關知識,感興趣的朋友一起學習吧

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

html代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<body>
<input id="fileid" type="file" accept="video/*;capture=camera"
onchange="onfile(this)">
<input id="btn" type="button" value="提交">
<script type="text/javascript">
var xhr;
function onfile(file) {
var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileid').files[0]);
xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:8889/TestUp/upservlet");
//xhr.setRequestHeader("Content-Type","charset=UTF-8");
xhr.send(fd);
xhr.onreadystatechange = processResponse;
}
function processResponse(){
if(xhr.readyState == 4){
alert("上傳結束數據流結束");
if(xhr.status == 200){
var infor = xhr.responseText;
alert("服務器端的響應 = "+infor);
}
}
}
</script>
</body>

java代碼如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.yjm.up;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UpServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 得到上傳文件的保存目錄,將上傳的文件存放于WEB-INF目錄下,不允許外界直接訪問,保證上傳文件的安全
String savePath = this.getServletContext().getRealPath(
"/WEB-INF/upload");
File file = new File(savePath);
System.out.println("test。。。。");
// 判斷上傳文件的保存目錄是否存在
if (!file.exists() && !file.isDirectory()) {
System.out.println(savePath + "目錄不存在,需要創建");
// 創建目錄
file.mkdir();
}
// 消息提示
String message = "";
try {
// 使用Apache文件上傳組件處理文件上傳步驟:
// 1、創建一個DiskFileItemFactory工廠
DiskFileItemFactory factory = new DiskFileItemFactory();
// 2、創建一個文件上傳解析器
ServletFileUpload upload = new ServletFileUpload(factory);
// 解決上傳文件名的中文亂碼
upload.setHeaderEncoding("UTF-8");
// 3、判斷提交上來的數據是否是上傳表單的數據
if (!ServletFileUpload.isMultipartContent(request)) {
// 按照傳統方式獲取數據
return;
}
// 4、使用ServletFileUpload解析器解析上傳數據,解析結果返回的是一個List<FileItem>集合,每一個FileItem對應一個Form表單的輸入項
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
// 如果fileitem中封裝的是普通輸入項的數據
if (item.isFormField()) {
String name = item.getFieldName();
// 解決普通輸入項的數據的中文亂碼問題
String value = item.getString("UTF-8");
// value = new String(value.getBytes("iso8859-1"),"UTF-8");
System.out.println(name + "=" + value);
} else {// 如果fileitem中封裝的是上傳文件
// 得到上傳的文件名稱,
String filename = item.getName();
System.out.println(filename);
if (filename == null || filename.trim().equals("")) {
continue;
}
// 注意:不同的瀏覽器提交的文件名是不一樣的,有些瀏覽器提交上來的文件名是帶有路徑的,如:
// c:\a\b\1.txt,而有些只是單純的文件名,如:1.txt
// 處理獲取到的上傳文件的文件名的路徑部分,只保留文件名部分
filename = filename
.substring(filename.lastIndexOf("\\") + 1);
// 獲取item中的上傳文件的輸入流
InputStream in = item.getInputStream();
// 創建一個文件輸出流
FileOutputStream out = new FileOutputStream(savePath + "\\"
+ filename);
// 創建一個緩沖區
byte buffer[] = new byte[1024 * 1024];
// 判斷輸入流中的數據是否已經讀完的標識
int len = 0;
// 循環將輸入流讀入到緩沖區當中,(len=in.read(buffer))>0就表示in里面還有數據
while ((len = in.read(buffer)) > 0) {
// 使用FileOutputStream輸出流將緩沖區的數據寫入到指定的目錄(savePath + "\\"
// + filename)當中
out.write(buffer, 0, len);
}
out.flush();
// 關閉輸入流
in.close();
// 關閉輸出流
out.close();
// 刪除處理文件上傳時生成的臨時文件
item.delete();
message = "文件上傳成功!";
}
}
} catch (Exception e) {
message = "文件上傳失敗!";
e.printStackTrace();
}
request.setAttribute("message", message);
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
}

用到的java 包 是 超過1G上傳

commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar

?
1
2
//xhr.setRequestHeader("Content-Type","application/octet-stream;charset=UTF-8");
這不能添加

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成网 | 男女做性免费网站 | 欧美成人影院 | 精品欧美一区二区精品久久小说 | av在线免费播放网站 | 日本在线免费观看视频 | 久草在线网址 | 久久日本 | lutube成人福利在线观看污 | 久久久久se | 国产资源在线播放 | 国产免费小视频在线观看 | 香蕉成人在线观看 | 中文成人在线 | 久久久久久久一区 | 国产精品亚洲精品久久 | 天天躁狠狠躁夜躁2020挡不住 | 亚洲综合中文 | 在线免费观看精品 | 国产精品久久久久久久久久iiiii | 综合网天天色 | 偿还电影免费看 | 77成人影院 | 久久精品艹 | 国产一级免费在线视频 | 一级外国毛片 | xxxxhdvideosex | 日韩视频在线视频 | 久久国产精品二国产精品中国洋人 | 久久人操 | 日本aaa一级片 | 在线看三级 | 96视频在线免费观看 | 在线成人亚洲 | pornoⅹxxxxhd麻豆| 亚洲人成电影在线 | 午夜视频在线观 | 日韩av片在线免费观看 | 毛片视频网站 | 中文字幕 日本 | 国产色91 |