您的位置:首页 > 其它

把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();

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: