第十一章 文件上传-跟赵大笨笨学SpringMVC

本文介绍使用JSP实现文件上传的方法。重点讲解了表单设置、MultipartFile类型的使用及文件保存过程。通过示例代码展示了如何正确配置并实现文件上传功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接看代码如何实现:

jsp

为了能上传文件,jsp要满足三个要求。
1.必须将表单的method设置为post。
2.必须将表单的enctype设置为multipart/form-data。
3.有一个type为file的input标签。

<form:form commandName="productAddBean" action="produceAdd" method="post" enctype="multipart/form-data">
     <div class="form-group" >
        <label for="firstname" class="col-sm-2 control-label">产品编号</label>
        <div class="col-sm-10">
            <form:input type="text" style='margin-bottom: 20px;' class="form-control" path="productId" placeholder="请输入产品编号"/>
        </div>
     </div>
     <form:errors path="productId"/>
     <br/>
     <div class="form-group" >
         <label for="firstname" class="col-sm-2 control-label">产品名称</label>
         <div class="col-sm-10">
               <form:input type="text" style='margin-bottom: 20px;' class="form-control" path="productName" placeholder="请输入产品名称"/>
          </div>
     </div>
     <form:errors path="productName"/>
     <br/>
     <div class="form-group" >
         <label for="firstname" class="col-sm-2 control-label">产品图片</label>
         <div class="col-sm-10">
             <form:input type="file" style='margin-bottom: 20px;' class="form-control" path="file"/>
         </div>
      </div>
      <br/>
      <div class="col-sm-5"></div> 
      <div class="col-sm-7">
           <button type="submit" class="btn btn-default">追加</button>
      </div>
</form:form>

这里写图片描述

model

    // 产品编号
    @NotEmpty(message="产品编号不能为空")
    private String productId;

    // 产品名称
    @NotEmpty(message="产品名称不能为空")
    private String productName;

    // 产品图片
    private MultipartFile file;

    public String getProductId() {
        return productId;
    }
    public void setProductId(String productId) {
        this.productId = productId;
    }
    public String getProductName() {
        return productName;
    }
    public void setProductName(String productName) {
        this.productName = productName;
    }
    public MultipartFile getFile() {
        return file;
    }
    public void setFile(MultipartFile file) {
        this.file = file;
    }

注意为MultipartFile类型。

Controller

 @RequestMapping("/produceAdd")
    public String produceAdd(@Valid ProductAddBean bean, BindingResult result,Model model) {
        if (result.hasErrors()){
            return "produce_add";
        }
        MultipartFile file = bean.getFile();
        // 判断上传的文件是否为空。
        if (!file.isEmpty()) {
            // 上传之后存放的路径。
            String path = "F:\\upload";
            // 获取文件名
            String filename = file.getOriginalFilename();
            // 上传
            try {
                file.transferTo(new File(path + File.separator + filename));
            } catch (IllegalStateException | IOException e) {
            }
        }
        model.addAttribute("productAddBean", bean);
        return "produce_add_confirm";
    }

配置文件:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

我们 上传一个1.txt
这里写图片描述
去d盘下面找找
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值