文件的上传servlet

简介: package com.sxt.servlet;import java.io.FileOutputStream; import java.

package com.sxt.servlet;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;

import com.sxt.bean.Goods;
import com.sxt.dao.GoodsDao;
import com.sxt.dao.impl.GoodsDaoImpl;

public class SaveGoodsServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    this.doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // 创建一个文件form表达存储数据的map
    Map<String, String> map = new HashMap<String, String>();
    // 获取上传文件类型
    if (ServletFileUpload.isMultipartContent(request)) {
        // 创建ServletFileUpload实例
        ServletFileUpload fileUpload = new ServletFileUpload();
        try {
            // 解析request请求 返回FileItemStream的iterator实例
            FileItemIterator iter = fileUpload.getItemIterator(request);
            InputStream is = null;// 输出流
            // 迭代取出
            while (iter.hasNext()) {
                FileItemStream item = iter.next();// 获取文件流
                String name = item.getFieldName();// 返回表单中标签的name值
                is = item.openStream();// 得到对应表单的输出流
                if (item.isFormField()) {// 如果是非文件域,设置进入map,这里要注意多值处理
                    String value = Streams.asString(is,"UTF-8");
                    map.put(name, value); // 如果不是文件上传,处理

                } else {
                    if (is.available() > 0) {// 如果输出流的内容大于0
                        String fname = item.getName();// 获取文件名
                        // 修改这个名字不能产生覆盖问题 时间戳
                        int a = (int) (Math.random() * 100);
                        long l = new Date().getTime();
                        fname = String.valueOf(l) + a + fname;
                        map.put("gurl", "upload/" + fname);
                        String path = request.getServletContext().getRealPath("/")+ "upload/" + fname;
                        Streams.copy(is, new FileOutputStream(path), true);// 拷贝内容到上传路径
                    }
                }
            }

        } catch (FileUploadException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    GoodsDao dao = new GoodsDaoImpl();
    String gid = map.get("gid");
    Integer gi = null;
    if(gid!=null && !gid.equals("")){
        gi = Integer.valueOf(gid);
    }
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    PrintWriter out = response.getWriter();
    try {
        Date d = sdf.parse(map.get("prodate"));
        Timestamp t = new Timestamp(d.getTime());
        Goods g = new Goods(gi, map.get("gname"), Double.parseDouble(map.get("gprice")), Integer.valueOf(map.get("gnum")),t,  map.get("gaddr"), map.get("gtel"), Integer.valueOf(map.get("gstatus")), map.get("gurl"));
        boolean b = dao.saveGoods(g);
        if(b){
            out.print(1);
        }else{
            out.print(0);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } 
    out.close();

}

}

相关文章
|
4月前
|
设计模式 前端开发 Java
了解 Spring MVC 架构、Dispatcher Servlet 和 JSP 文件的关键作用
Spring MVC 是 Spring 框架的一部分,是一个 Web 应用程序框架。它旨在使用 Model-View-Controller(MVC) 设计模式轻松构建Web应用程序。
61 0
|
10月前
|
Java 应用服务中间件
用IDEA创建servlet文件并用Tomcat运行
用IDEA创建servlet文件并用Tomcat运行
130 0
|
Java 应用服务中间件
idea文件右键创建New没有Create New Servlet的解决办法
idea文件右键创建New没有Create New Servlet的解决办法
idea文件右键创建New没有Create New Servlet的解决办法
|
Java
使用Servlet实现下载文件的功能
使用Servlet实现下载文件的功能 在前台有一个下载链接,比如   下载   使用Servlet实现下载:     import java.
1060 0
|
Web App开发 存储 Java
jsp+servlet实现文件的上传和下载
实现文件的上传和下载首先需要理解几个知识,这样才可以很好的完成文件的上传和下载;   (1):上传文件是上传到服务器上,而保存到数据库是文件名  (2):上传文件是以文件转换为二进制流的形式上传的  (3): enctype="multipart/form-data"需要设置在form里面,否则无法提交文件                         (4):必须在servlet3.0里
2321 0
|
Java 安全 开发框架
|
Java
【java】servlet输出pdf文件到浏览器 教程
把这个项目部署成你的web项目 http://pan.baidu.com/share/link?shareid=136974&uk=436295647项目下载 打开谷歌浏览器,输入http://localhost:8080/fileOutDemo/outFile 注意 1.谷歌浏览器内嵌pdf的功能,不用重新安装pdf阅读器就能看效果。
1273 0
|
.NET
用 ASP 文件来调用 Servlet
在 WebSphere应用服务器 中的 ASP 支持包括一个用于嵌入 Servlet 的 ActiveX 控制,下面介绍ActiveX 控制AspToServlet 的方法和属性。 该方法说明如下: (1) String ExecServletToString(String servletName);执行 ServletName,并将其输出返回到一个字符串中。
751 0
|
17天前
|
Java
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
19 1