- 浏览: 270996 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
tonytony3:
THANK YOU
Android多级树形菜单的实现 -
haiyang08101:
deleteNumber = "421f481e-7 ...
java对xml文件做增删改查 -
求求你帮帮我:
怎么把我的空格也当成节点处理了?
java对xml文件做增删改查 -
求求你帮帮我:
deleteNumber = "421f481e-7 ...
java对xml文件做增删改查 -
lpj13579:
多谢分享,学习学习
高仿小米盒子UI效果实现
package com.web;
2
3 import java.io.DataInputStream;
4 import java.io.File;
5 import java.io.FileNotFoundException;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8 import javax.servlet.http.HttpServletRequest;
9 import java.io.*;
10 import java.util.HashMap;
11
12
13 public class uploadFile {
14 public static final int MAX_SIZE = 1024 * 1024*100;
15 public static final String FILE_DIR = "d:/temp/";
16
17 private int file_Size=0;
18 private String file_Path = "";
19 private HashMap hm = new HashMap();
20
21 public String upLoad(HttpServletRequest req) {
22 String tmpString ="";
23 String result = "";
24 DataInputStream dis = null;
25 String split_Str = "";
26
27 try {
28 dis = new DataInputStream(req.getInputStream());
29 String content = req.getContentType();
30 if (content != null && content.indexOf("multipart/form-data") != -1) {
31
32 int reqSize = req.getContentLength();
33 byte[] data = new byte[reqSize];
34 int bytesRead = 0;
35 int totalBytesRead = 0;
36 int sizeCheck = 0;
37 while (totalBytesRead < reqSize) {
38 // check for maximum file size violation
39 sizeCheck = totalBytesRead + dis.available();
40 if (sizeCheck > MAX_SIZE)
41 result = "文件太大不能上传";
42
43 bytesRead = dis.read(data, totalBytesRead, reqSize);
44 totalBytesRead += bytesRead;
45 }
46 String dataString = null;
47 //dataString = new String(data, "ISO-8859-1");
48 dataString = new String(data);
49 tmpString = new String(data);
50 hm = parseAnotherParam(tmpString);
51
52 //取出字段分割符
53 split_Str = dataString.substring(0, dataString.indexOf("\r\n"));
54 // 分离filepath 并赋值
55 dataString = dataString.substring(dataString.indexOf("filename=\""));
56 String filePath = dataString.substring(0, dataString.indexOf("Content-Type:"));
57 if (filePath==null && filePath.equals("")) return "";
58 //System.out.println(filePath);
59 dataString = new String(dataString.getBytes(),"ISO-8859-1");
60 // 分离contentType 并赋值
61 dataString = dataString.substring(dataString.indexOf("Content-Type:") + 1);
62 dataString = dataString.substring(dataString.indexOf("\n") + 1);
63 // 分离文件信息 获得最终想要的字节
64 //System.out.print("|"+dataString+"|");
65 dataString = dataString.substring(2, dataString.indexOf(split_Str));
66 //System.out.println("|"+dataString+"|");
67 dataString = dataString.substring(0, dataString.lastIndexOf("\n") - 1);
68 //System.out.print("|"+dataString+"|");
69 if (writeFile(dataString.getBytes("ISO-8859-1"), FILE_DIR + getFileName(filePath))) {
70 this.file_Size = dataString.getBytes("ISO-8859-1").length;
71 this.file_Path = FILE_DIR + getFileName(filePath);
72 result = "文件上传完毕";
73 } else {
74 result = "文件上传失败";
75 }
76 } else {
77 result = "content 必须为 multipart/form-data";
78 }
79 } catch (UnsupportedEncodingException ex4) {
80 result = "getBytes 失败 UnsupportedEncodingException错误";
81 } catch (NullPointerException e) {
82 result = "getBytes 失败 NullPointerException错误";
83 } catch (IOException ex1) {
84 result = "IOException 错误 ";
85 }
86
87 return result;
88 }
89
90 public String getFilePath(){
91 return this.file_Path;
92 }
93
94 public int getFileSize(){
95 return this.file_Size;
96 }
97
98 public boolean writeFile(byte[] data, String path) {
99 File f = null;
100 FileOutputStream fos = null;
101 try {
102 f = new File(path);
103 f.createNewFile();
104 fos = new FileOutputStream(f);
105 fos.write(data, 0, data.length);
106 } catch (FileNotFoundException e) {
107 return false;
108 } catch (IOException e) {
109 return false;
110 } finally {
111 try {
112 fos.close();
113 } catch (IOException e) {
114 return false;
115 }
116 }
117 return true;
118 }
119
120 public String getFileName(String arg) {
121 String path = "";
122 if (arg.indexOf("\"") > -1)
123 path = arg.substring(arg.indexOf("\"") + 1, arg.lastIndexOf("\""));
124 else
125 path = arg;
126 //System.out.println("file_path:"+arg);
127 path = path.substring(path.lastIndexOf("\\") + 1);
128 return path;
129 }
130
131
132 public HashMap parseAnotherParam(String str){
133 HashMap hm= new HashMap();
134 String key="";
135 String value="";
136 int startindex = 0;
137 int endindex = 0;
138
139 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
140 endindex = str.indexOf("\"\r\n\r\n");
141
142 while ( startindex >-1 && endindex > -1 ){
143 key = str.substring(startindex, endindex);
144
145 if(!str.substring(endindex , endindex + 5).equals("\"\r\n\r\n") ){//去掉没有value的元素
146 str = str.substring(endindex);
147 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
148 endindex = str.indexOf("\"\r\n\r\n");
149 continue;
150 }
151 if( key.indexOf("\";") > -1){//去掉上传文件的参数以及编码
152 str = str.substring(str.indexOf("\";") + 2);
153 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
154 endindex = str.indexOf("\"\r\n\r\n");
155
156 continue;
157 } else
158 str = str.substring(endindex + 5);
159
160 value = str.substring(0, str.indexOf("\r\n"));
161 str = str.substring(str.indexOf("\r\n") + 2);
162 //System.out.println("key:"+key+" value:"+value);
163 hm.put(key,value);
164
165 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
166 endindex = str.indexOf("\"\r\n\r\n");
167
168 }
169 return hm;
170 }
171
172 public String getParameter(String param){
173 //System.out.println(hm.toString());
174 return (String)hm.get(param);
175 }
176
177
178 }
2
3 import java.io.DataInputStream;
4 import java.io.File;
5 import java.io.FileNotFoundException;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8 import javax.servlet.http.HttpServletRequest;
9 import java.io.*;
10 import java.util.HashMap;
11
12
13 public class uploadFile {
14 public static final int MAX_SIZE = 1024 * 1024*100;
15 public static final String FILE_DIR = "d:/temp/";
16
17 private int file_Size=0;
18 private String file_Path = "";
19 private HashMap hm = new HashMap();
20
21 public String upLoad(HttpServletRequest req) {
22 String tmpString ="";
23 String result = "";
24 DataInputStream dis = null;
25 String split_Str = "";
26
27 try {
28 dis = new DataInputStream(req.getInputStream());
29 String content = req.getContentType();
30 if (content != null && content.indexOf("multipart/form-data") != -1) {
31
32 int reqSize = req.getContentLength();
33 byte[] data = new byte[reqSize];
34 int bytesRead = 0;
35 int totalBytesRead = 0;
36 int sizeCheck = 0;
37 while (totalBytesRead < reqSize) {
38 // check for maximum file size violation
39 sizeCheck = totalBytesRead + dis.available();
40 if (sizeCheck > MAX_SIZE)
41 result = "文件太大不能上传";
42
43 bytesRead = dis.read(data, totalBytesRead, reqSize);
44 totalBytesRead += bytesRead;
45 }
46 String dataString = null;
47 //dataString = new String(data, "ISO-8859-1");
48 dataString = new String(data);
49 tmpString = new String(data);
50 hm = parseAnotherParam(tmpString);
51
52 //取出字段分割符
53 split_Str = dataString.substring(0, dataString.indexOf("\r\n"));
54 // 分离filepath 并赋值
55 dataString = dataString.substring(dataString.indexOf("filename=\""));
56 String filePath = dataString.substring(0, dataString.indexOf("Content-Type:"));
57 if (filePath==null && filePath.equals("")) return "";
58 //System.out.println(filePath);
59 dataString = new String(dataString.getBytes(),"ISO-8859-1");
60 // 分离contentType 并赋值
61 dataString = dataString.substring(dataString.indexOf("Content-Type:") + 1);
62 dataString = dataString.substring(dataString.indexOf("\n") + 1);
63 // 分离文件信息 获得最终想要的字节
64 //System.out.print("|"+dataString+"|");
65 dataString = dataString.substring(2, dataString.indexOf(split_Str));
66 //System.out.println("|"+dataString+"|");
67 dataString = dataString.substring(0, dataString.lastIndexOf("\n") - 1);
68 //System.out.print("|"+dataString+"|");
69 if (writeFile(dataString.getBytes("ISO-8859-1"), FILE_DIR + getFileName(filePath))) {
70 this.file_Size = dataString.getBytes("ISO-8859-1").length;
71 this.file_Path = FILE_DIR + getFileName(filePath);
72 result = "文件上传完毕";
73 } else {
74 result = "文件上传失败";
75 }
76 } else {
77 result = "content 必须为 multipart/form-data";
78 }
79 } catch (UnsupportedEncodingException ex4) {
80 result = "getBytes 失败 UnsupportedEncodingException错误";
81 } catch (NullPointerException e) {
82 result = "getBytes 失败 NullPointerException错误";
83 } catch (IOException ex1) {
84 result = "IOException 错误 ";
85 }
86
87 return result;
88 }
89
90 public String getFilePath(){
91 return this.file_Path;
92 }
93
94 public int getFileSize(){
95 return this.file_Size;
96 }
97
98 public boolean writeFile(byte[] data, String path) {
99 File f = null;
100 FileOutputStream fos = null;
101 try {
102 f = new File(path);
103 f.createNewFile();
104 fos = new FileOutputStream(f);
105 fos.write(data, 0, data.length);
106 } catch (FileNotFoundException e) {
107 return false;
108 } catch (IOException e) {
109 return false;
110 } finally {
111 try {
112 fos.close();
113 } catch (IOException e) {
114 return false;
115 }
116 }
117 return true;
118 }
119
120 public String getFileName(String arg) {
121 String path = "";
122 if (arg.indexOf("\"") > -1)
123 path = arg.substring(arg.indexOf("\"") + 1, arg.lastIndexOf("\""));
124 else
125 path = arg;
126 //System.out.println("file_path:"+arg);
127 path = path.substring(path.lastIndexOf("\\") + 1);
128 return path;
129 }
130
131
132 public HashMap parseAnotherParam(String str){
133 HashMap hm= new HashMap();
134 String key="";
135 String value="";
136 int startindex = 0;
137 int endindex = 0;
138
139 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
140 endindex = str.indexOf("\"\r\n\r\n");
141
142 while ( startindex >-1 && endindex > -1 ){
143 key = str.substring(startindex, endindex);
144
145 if(!str.substring(endindex , endindex + 5).equals("\"\r\n\r\n") ){//去掉没有value的元素
146 str = str.substring(endindex);
147 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
148 endindex = str.indexOf("\"\r\n\r\n");
149 continue;
150 }
151 if( key.indexOf("\";") > -1){//去掉上传文件的参数以及编码
152 str = str.substring(str.indexOf("\";") + 2);
153 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
154 endindex = str.indexOf("\"\r\n\r\n");
155
156 continue;
157 } else
158 str = str.substring(endindex + 5);
159
160 value = str.substring(0, str.indexOf("\r\n"));
161 str = str.substring(str.indexOf("\r\n") + 2);
162 //System.out.println("key:"+key+" value:"+value);
163 hm.put(key,value);
164
165 startindex = str.indexOf("Content-Dis;form-data; name=\"") + "Content-Dis;form-data; name=\"".length();
166 endindex = str.indexOf("\"\r\n\r\n");
167
168 }
169 return hm;
170 }
171
172 public String getParameter(String param){
173 //System.out.println(hm.toString());
174 return (String)hm.get(param);
175 }
176
177
178 }
发表评论
-
Android 三大图片加载框架比较
2016-11-30 10:31 10781.哪三大图片加载框架? 1) Pi ... -
Java Calendar 类的时间操作
2016-06-01 21:02 661ava Calendar 类时间操作,这也许是创建日历和管理 ... -
获取电脑ip,所在省份城市
2014-08-27 09:45 676调用了腾讯的ip接口(http://fw.qq.com ... -
获取Android签名证书的sha1值
2014-08-23 23:14 657前言:今天开始研 ... -
java中Keytool的使用总结
2014-08-23 22:40 557J2SDK提供了keytool命令行工具,可以根据指定的参数 ... -
Java基础——Java语法基础(3)
2014-06-19 10:13 565程序控制流程 1、顺序结构 按顺序执行 2、i ... -
Java基础——Java语法基础(1)
2014-06-19 10:11 796Java代码基本格式 Java ... -
android MD5校验码的生成与算法实现
2014-06-17 10:58 880在Java中,java.security.Mes ... -
java中的字符串分割函数 split
2014-06-06 15:01 688Java中的我们可以利用sp ... -
java对xml文件做增删改查
2014-06-04 20:40 1834package com.wss; import jav ... -
获取网络的json文件 Gson解析json文件
2013-11-07 16:21 522/** * 获取网络的json文件 * @pa ... -
Java获取文件类型Mime Type的各种方法
2013-09-16 15:46 1138使用 javax.activation.MimetypesF ... -
Java栈与堆
2013-06-20 22:18 9191. 栈(stack)与堆(heap)都 ... -
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead.
2013-05-02 12:01 692解决Android requires compiler co ... -
java创建文件和目录
2013-04-25 10:30 599创建文件和目录的关键技术点如下: 1、File类的cr ... -
iava创建文件和目录
2013-04-24 19:42 792创建文件和目录的关键技术点如下: 1、File类的cr ... -
Java程序发送邮件的两种方法
2013-01-25 10:57 1867前一段时间我在博客中发表过Java接收解析邮件的程序 ... -
SharedPreferences保存数据
2013-01-24 15:09 882package com.test; import ja ... -
java 把logcat日志保存到SD里
2013-01-22 20:21 1029private void saveLogcat(){ ... -
Android开发系列:查看LogCat日志
2013-01-19 13:06 3441LogCat日志 1. Window & ...
相关推荐
使用FileUpload库,可以轻松地读取上传文件的大小、类型和内容,以及处理多个文件上传的情况。 三、Java Servlet处理文件上传 1. 配置Servlet:在web.xml中配置一个Servlet来处理文件上传请求。 2. 创建Form:HTML...
总结来说,实现Java大文件上传结合`plupload`,主要涉及前端配置`plupload`参数,后端使用`Commons-FileUpload`处理分块上传,以及安全性、续传和服务器配置等多个方面。这个名为`pluploadTest`的项目应该包含了完整...
如果要上传多个文件,可以将参数改为`List<MultipartFile> files`。 接下来,我们需要处理文件存储的问题。在描述中提到,上传的文件会被保存在本地计算机的某个盘中。这需要我们编写代码来读取文件流并将其写入到...
此外,为了更好地处理文件上传,我们可以创建一个服务层,将文件上传的逻辑与控制器分离,使代码更易于维护和测试。同时,可以利用Spring的事务管理,确保文件上传操作的原子性。 总的来说,Java Spring文件上传...
Java代码文件上传涉及前端表单设计、后端处理逻辑及安全考虑等多个方面。通过合理配置HTML表单,利用Java后端技术(如Servlets和相关库),可以高效地实现文件上传功能,同时保证系统的安全性和稳定性。理解并掌握...
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
在Java编程中,多文件上传是一项常见的功能,特别是在web应用中,用户可能需要上传多个文件,如图片、文档等。本示例"java-多文件上传dome"提供了一个工具包,可直接下载使用,方便开发者快速实现多文件上传功能。 ...
在“使用layui实现多文件列表上传”这个项目中,主要涉及到了layui的文件上传功能,这在网页应用中是非常常见且实用的功能,尤其对于需要用户提交多份文件的场景。 首先,layui的文件上传组件是基于HTML5的File API...
标题 "jquery 多文件上传 (java)" 涉及到的是使用 jQuery 和 Java 实现一个支持多文件上传的功能。在 Web 开发中,文件上传是一个常见的需求,特别是当用户需要提交图片、文档或其他媒体文件时。jQuery 是一个流行的...
- 为了处理多图片上传,服务端可能需要接收一个包含多个图片的数组或列表。可以使用`HttpServletRequest`的`getParts()`方法来获取所有上传的Part对象。 6. **部署与访问**: - 提到的`whb.jsp`可能是用于处理...
综上所述,"多文件预览上传-多图片预览上传"涉及了前端文件处理、预览、HTTP上传,以及JAVA后端的文件接收和存储等多个技术环节,是一个完整的文件上传解决方案。在实际应用中,还需要结合具体的业务需求和安全策略...
通过提供的代码示例和配置指南,开发者可以快速搭建起一个具备文件上传下载功能的应用系统。同时,为了提高用户体验和系统的安全性,还需要考虑诸如文件类型验证、上传文件大小限制等功能的实现。
在Java Web开发中,文件...通过这个案例,开发者可以学习如何在Java Web环境中实现文件上传功能,同时了解相关的安全和性能优化策略。实际项目中,还可以结合Spring MVC或其他Web框架进一步简化和增强文件上传的功能。
总的来说,Java上传文件到服务器涉及网络编程、多部分表单数据处理和文件管理等多个技术领域,开发者需要根据具体需求选择合适的方法和库。在实践中,确保代码的安全性和用户体验是至关重要的。
它允许客户端向服务器发送多个部分的数据流,每个部分可以是不同类型的文件或文本。 #### 二、基本概念与原理 在HTTP请求中,`multipart/form-data`通过边界(boundary)来分隔不同的字段数据。例如: ```plain...
通过以上讲解,我们可以理解Java IO流在文件上传下载中的核心作用,以及`uploadDRFile.jsp`和`daoRuform.jsp`这两个JSP文件可能实现的功能。在实际开发中,这些技术能够帮助我们构建稳定、高效的文件管理系统。
9. **多文件上传**:现代Web应用经常需要支持一次上传多个文件。这可以通过HTML5的`multiple`属性实现,Java端则需要处理`MultipartFile[]`或`List<Part>`类型的参数。 10. **错误处理**:良好的错误处理机制必不可...
这种格式可以将文件内容与表单字段分开,以允许同时上传多个文件。 3. **Apache Commons FileUpload库**:Java标准库并未提供内置的多部分解析器。因此,开发者通常会使用Apache Commons FileUpload库来解析`...
在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...