servlet文件上传

1、导包commons-fileupload-1.3.3.jar
commons-io-2.5.jar
2、实现类

public class UploadServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String path = this.getServletContext().getRealPath("/uploadimage");
        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setHeaderEncoding("UTF-8");
        try {
            List<FileItem> requestList = upload.parseRequest(req);
            for (FileItem fileItem : requestList) {
                if(fileItem.isFormField()){
                    if("username".equals(fileItem.getFieldName())){
                        req.setAttribute("username", fileItem.getString());
                    }
                    if("password".equals(fileItem.getFieldName())){
                        req.setAttribute("password", fileItem.getString());
                    }
                }else {
                    String filename = fileItem.getName();
                    String uploadpath = path + "/" + filename;
                    req.setAttribute("filename", filename);
                    InputStream inputStream = fileItem.getInputStream();
                    FileOutputStream out = new FileOutputStream(uploadpath);
                    byte[] b = new byte[1024];
                    int k = 0;
                    while ((k = inputStream.read(b)) > 0) {
                        out.write(b, 0, k);
                    }
                    inputStream.close();
                    out.close();
                    fileItem.delete();
                }
            }
            req.getRequestDispatcher("down.jsp").forward(req, resp);
        } catch (FileUploadException e) {
            e.printStackTrace();
        }

    }

}

3、表单

<form action="UploadServlet" enctype="multipart/form-data"  method="post"
        style="text-align: center; width: 400px">
        <table>
            <tr>
                <td>用户名</td>
                <td><input type="text" name="username"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="password" name="password"></td>
            </tr>
            <tr>
                <td>头像</td>
                <td><input type="file" name="image"></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="提交"></td>
            </tr>
        </table>
    </form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值