把input—file获取的图片存到本地绝对路劲
2017-08-24 12:50
246 查看
package com.synjones.wechatmanage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
public class TestSevlet extends HttpServlet implements Servlet
{
File tmpDir = null;// 初始化上传文件的临时存放目录
File saveDir = null;// 初始化上传文件后的保存目录
String tmpPath = "c://tmpdir";
String savePath = "c://updir";
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
super.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
String xxbh = null;
if (ServletFileUpload.isMultipartContent(request))
{
DiskFileItemFactory dff = new DiskFileItemFactory();// 创建该对象
dff.setRepository(tmpDir);// 指定上传文件的临时目录
dff.setSizeThreshold(1024000);// 指定在内存中缓存数据大小,单位为byte
ServletFileUpload sfu = new ServletFileUpload(dff);// 创建该对象
sfu.setFileSizeMax(5000000);// 指定单个上传文件的最大尺寸
sfu.setSizeMax(10000000);// 指定一次上传多个文件的总尺寸
FileItemIterator fii = sfu.getItemIterator(request);// 解析request
// 请求,并返回FileItemIterator集合
while (fii.hasNext())
{
FileItemStream fis = fii.next();// 从集合中获得一个文件流
if (!fis.isFormField() && fis.getName().length() > 0)// 过滤掉表单中非文件域
{
String fileName = null;
if(fis.getName().lastIndexOf("//") != -1){
fileName = fis.getName().substring(fis.getName().lastIndexOf("//"));// 获得上传文件的文件名
} else
{
fileName = fis.getName();
}
BufferedInputStream in = new BufferedInputStream(fis.openStream());// 获得文件输入流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(savePath + File.separator + fileName)));// 获得文件输出流
Streams.copy(in, out, true);// 开始把文件写到你指定的上传文件夹
} else if(fis.getContentType() == null)
{
String InName = fis.getFieldName();
if("schoolid".equals(InName))
{
InputStream in = fis.openStream();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[4096];
int count = -1;
while((count = in.read(data,0,4096)) != -1)
outStream.write(data, 0, count);
xxbh = new String(outStream.toByteArray(),"utf-8");
in.close();
}
}
}
response.getWriter().println(xxbh);// 终于成功了,还不到你的上传文件中看看,你要的东西都到齐了吗
}
} catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public void init(ServletConfig config) throws ServletException
{
/* 对上传文件夹和临时文件夹进行初始化 */
super.init();
tmpDir = new File(tmpPath);
saveDir = new File(savePath);
if (!tmpDir.isDirectory())
tmpDir.mkdir();
if (!saveDir.isDirectory())
saveDir.mkdir();
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
public class TestSevlet extends HttpServlet implements Servlet
{
File tmpDir = null;// 初始化上传文件的临时存放目录
File saveDir = null;// 初始化上传文件后的保存目录
String tmpPath = "c://tmpdir";
String savePath = "c://updir";
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
super.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
String xxbh = null;
if (ServletFileUpload.isMultipartContent(request))
{
DiskFileItemFactory dff = new DiskFileItemFactory();// 创建该对象
dff.setRepository(tmpDir);// 指定上传文件的临时目录
dff.setSizeThreshold(1024000);// 指定在内存中缓存数据大小,单位为byte
ServletFileUpload sfu = new ServletFileUpload(dff);// 创建该对象
sfu.setFileSizeMax(5000000);// 指定单个上传文件的最大尺寸
sfu.setSizeMax(10000000);// 指定一次上传多个文件的总尺寸
FileItemIterator fii = sfu.getItemIterator(request);// 解析request
// 请求,并返回FileItemIterator集合
while (fii.hasNext())
{
FileItemStream fis = fii.next();// 从集合中获得一个文件流
if (!fis.isFormField() && fis.getName().length() > 0)// 过滤掉表单中非文件域
{
String fileName = null;
if(fis.getName().lastIndexOf("//") != -1){
fileName = fis.getName().substring(fis.getName().lastIndexOf("//"));// 获得上传文件的文件名
} else
{
fileName = fis.getName();
}
BufferedInputStream in = new BufferedInputStream(fis.openStream());// 获得文件输入流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(savePath + File.separator + fileName)));// 获得文件输出流
Streams.copy(in, out, true);// 开始把文件写到你指定的上传文件夹
} else if(fis.getContentType() == null)
{
String InName = fis.getFieldName();
if("schoolid".equals(InName))
{
InputStream in = fis.openStream();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[4096];
int count = -1;
while((count = in.read(data,0,4096)) != -1)
outStream.write(data, 0, count);
xxbh = new String(outStream.toByteArray(),"utf-8");
in.close();
}
}
}
response.getWriter().println(xxbh);// 终于成功了,还不到你的上传文件中看看,你要的东西都到齐了吗
}
} catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public void init(ServletConfig config) throws ServletException
{
/* 对上传文件夹和临时文件夹进行初始化 */
super.init();
tmpDir = new File(tmpPath);
saveDir = new File(savePath);
if (!tmpDir.isDirectory())
tmpDir.mkdir();
if (!saveDir.isDirectory())
saveDir.mkdir();
}
}
相关文章推荐
- js/jquery 获取本地文件的文件路劲 获取input框中type=‘file’ 中的文件路径
- 使用js获取input file的绝对路径预览图片C:\fakepath\问题
- js/jquery 获取本地文件的文件路劲 获取input框中type=‘file’ 中的文件路径
- js/jquery 获取本地文件的文件路劲 获取input框中type=‘file’ 中的文件路径(转载)
- input file如何获取选择图片的本地路径和base64路径
- WebView支持<input type="file">调起本地文件,获取图片
- input file 获取上传图片并显示在页面
- 读取input:file的路径并显示本地图片的方法
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片(可实现多张图片上传和预览移除)
- bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
- 读取input:file的路径并显示本地图片的方法
- bootstrap fileinput 组件整合SpringMVC上传图片到本地磁盘
- 上传图片input-file表单元素值为C://fakepath,不能得到本地真实路径解决方法
- js获取 input file 图片缩略图
- JS获取input file绝对路径的方法(推荐)
- input file文件上传(multiple)及FileReader:读取本地图片文件并显示
- html,图片上传预览,input file获取文件等相关操作
- input标签file文件上传图片,获取base64
- 读取input:file的路径并显示本地图片的方法
- input-file的本地图片预览+等比例缩放-兼容IE8、火狐