java 文件的上传

文件上传的条件:
前台:
1.有文件上传的输入框< input type = “flie”>
文档标题:

<input type="file" name="file" id="file"  size="30"/>

2.form表单的请求方式必须是post

				 <form id="documentForm" name="documentForm" action="${pageContext.request.contextPath}/document/addDocument" enctype="multipart/form-data" method="post">

3.form表单的enctype="multipart/form-data "
后台:
1.需要文件上传的JAR包

 <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>

2.接受文件的类型必须是MultipartFile

在这里插入代码片

3.配置Multipart解析器

<!--配置Multipart解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

4.具体实现过程

 @RequestMapping("/addDocument")
    public String  addDocument(Document document, HttpSession session,Model model) throws IOException {
        //1.保存上传的文件到服务器
        String path="D:/upload";
        File file=new File(path); //获取路径对应的文件
        if(!file.exists()){//判断文件路径是否存在
            file.mkdirs();  //创建对应的路径
        }
        //重名文件不被覆盖
        String filename=System.currentTimeMillis()+"-"+document.getFile().getOriginalFilename(); //获取原始文件名称
        document.getFile().transferTo(new File(path,filename));//定义保存的文件,就是把multipartfile转化为File,保存搭配服务器对应地址
        //2.数据库中加入对应数据, 给Document的filename赋值
        document.setFilename(filename);
        User login_user=(User)session.getAttribute("login_user");//获取当前登录用户,也就是文件上传者
        document.setUser(login_user);
        int rows=documentService.addDocument(document);//调用service层方法插入文档对应信息
        if(rows>0){
            PageModel pageModel=new PageModel();
            int recordCount=documentService.findDocumentCount(null);
            pageModel.setRecordCount(recordCount);
            return "redirect:/document/findDocument?pageIndex="+pageModel.getTotalSize(); //加上redirect是查询全部信息
        }else{
            model.addAttribute("fail","文档上传失败");
            return "/jsp/fail.jsp";
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值