java上传文件实例
来源:互联网 发布:不可而知 编辑:程序博客网 时间:2024/06/05 00:44
package com.xiaojie.simpleFileupload;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class SimpleFileupload
*/
@WebServlet("/simpleFileupload")
public class SimpleFileupload extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
factory.setSizeThreshold(1024 * 500);//设置内存的临界值为500K
File linshi = new File("G:\\linshi");//当超过500K的时候,存到一个临时文件夹中
factory.setRepository(linshi);
upload.setSizeMax(1024 * 1024 * 5);//设置上传的文件总的大小不能超过5M
try {
// 1. 得到 FileItem 的集合 items
List<FileItem> /* FileItem */items = upload.parseRequest(request);
// 2. 遍历 items:
for (FileItem item : items) {
// 若是一个一般的表单域, 打印信息
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString("utf-8");
System.out.println(name + ": " + value);
}
// 若是文件域则把文件保存到 e:\\files 目录下.
else {
String fileName = item.getName();
long sizeInBytes = item.getSize();
System.out.println(fileName);
System.out.println(sizeInBytes);
InputStream in = item.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
fileName = "g:\\files\\" + fileName;//文件最终上传的位置
System.out.println(fileName);
OutputStream out = new FileOutputStream(fileName);
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
in.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class SimpleFileupload
*/
@WebServlet("/simpleFileupload")
public class SimpleFileupload extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
factory.setSizeThreshold(1024 * 500);//设置内存的临界值为500K
File linshi = new File("G:\\linshi");//当超过500K的时候,存到一个临时文件夹中
factory.setRepository(linshi);
upload.setSizeMax(1024 * 1024 * 5);//设置上传的文件总的大小不能超过5M
try {
// 1. 得到 FileItem 的集合 items
List<FileItem> /* FileItem */items = upload.parseRequest(request);
// 2. 遍历 items:
for (FileItem item : items) {
// 若是一个一般的表单域, 打印信息
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString("utf-8");
System.out.println(name + ": " + value);
}
// 若是文件域则把文件保存到 e:\\files 目录下.
else {
String fileName = item.getName();
long sizeInBytes = item.getSize();
System.out.println(fileName);
System.out.println(sizeInBytes);
InputStream in = item.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
fileName = "g:\\files\\" + fileName;//文件最终上传的位置
System.out.println(fileName);
OutputStream out = new FileOutputStream(fileName);
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
in.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
}
阅读全文
0 0
- java上传文件实例
- java上传文件实例
- java上传文件实例
- java上传FTP文件实例程序
- Flex+Java Servlet文件上传实例
- Flex+Java Servlet文件上传实例
- Flex+Java Servlet文件上传实例
- Struts2 上传文件实例
- Jftp上传文件实例
- Excel文件上传实例
- 上传文件实例01
- 文件的上传实例
- 文件上传Servlet实例
- 文件上传实例
- struts2文件上传实例
- Struts2文件上传实例
- 文件上传实例
- AppCan 文件上传实例
- App复活
- python dict 和set 详解
- 解决Maven的Could not calculate build plan的方法
- Marvell ESPRESSObin从NFS启动Linux
- Spring Boot (三) 热部署
- java上传文件实例
- mybatis的xml中使用foreach
- ReactNative知识体系
- ${pageContext.request.contextPath} jsp中获取绝对路径
- RxJava基本用法
- laravel Excel
- int , long , long long 的数据范围
- ElasticSearch学习笔记(二)IK分词器和拼音分词器的安装
- JSP需要掌握的内容