zoukankan      html  css  js  c++  java
  • 关于javaweb开发中的文件上传

    关于文件和图片上传

    1. 需要在form表单中配置enctype="multipart/form-data"
    2. 表单中关于上传文件的input域name属性不能和实体类中的对应文件路径的属性名一样。
    3. 在控制层(controller)中要用到Mulitpart类

    4.Form表单中控制文件上传的input域应该与MultipartFile声明的对象名字(上面的file)一样

    例如:

    在form表单中实现文件上传组件的input域中name=”file”

    而在实体类中(数据库中)负责存储文件路径的是boxorder属性

    是为什么呢?

    因为,你的控制文件上传的input域中是要实现一个MultipartFile类型的数据,这个数据应该传递给MulitpartFile类型的file参数,所以input中的name属性因该与声明的MultipartFile类型的参数名一致,而对于selfbox对象中没有传入boxorder的值,这样我们可以在程序中用boxorder的set方法设置orderbox的值,让他是图片的途径+图片名,这样就可以实现将文件传入服务器中,数据库中只保留文件路径

    下面附上完整代码:

    Model:

    public class Selfbox {
    
          private String id;
    
          private String phone;
    
          private String linkman;
    
          private String yardadress;
    
         
    
          private String self_city;
    
          public Integer getCheck_height() {
    
               return check_height;
    
          }
    
          public void setCheck_height(Integer check_height) {
    
               this.check_height = check_height;
    
          }
    
          public String getSelf_city() {
    
               return self_city;
    
          }
    
          public void setSelf_city(String self_city) {
    
               this.self_city = self_city;
    
          }
    
          public Integer getClass_east_west() {
    
               return class_east_west;
    
          }
    
          public void setClass_east_west(Integer class_east_west) {
    
               this.class_east_west = class_east_west;
    
          }
    
          private String boxorder;
    
          private String arrage_id;
    
          private Integer flag;
    
          private Integer check_height;
    
          private Integer class_east_west;
    
          public String getId() {
    
               return id;
    
          }
    
          public void setId(String id) {
    
               this.id = id;
    
          }
    
          public String getPhone() {
    
               return phone;
    
          }
    
          public void setPhone(String phone) {
    
               this.phone = phone;
    
          }
    
          public String getLinkman() {
    
               return linkman;
    
          }
    
          public void setLinkman(String linkman) {
    
               this.linkman = linkman;
    
          }
    
     
    
          public String getYardadress() {
    
               return yardadress;
    
          }
    
          public void setYardadress(String yardadress) {
    
               this.yardadress = yardadress;
    
          }
    
          public String getBoxorder() {
    
               return boxorder;
    
          }
    
          public void setBoxorder(String boxorder) {
    
               this.boxorder = boxorder;
    
          }
    
          public String getArrage_id() {
    
               return arrage_id;
    
          }
    
          public void setArrage_id(String arrage_id) {
    
               this.arrage_id = arrage_id;
    
          }
    
          public Integer getFlag() {
    
               return flag;
    
          }
    
          public void setFlag(Integer flag) {
    
               this.flag = flag;
    
    }

    Controller层:

    @Controller
    
    @RequestMapping("/selfbox")
    
    public class SelfboxController {
    
          
    
           @Autowired
    
           private SelfboxService selfboxService;
    
           public SelfboxService getSelfboxService() {
    
                  return selfboxService;
    
           }
    
           public void setSelfboxService(SelfboxService selfboxService) {
    
                  this.selfboxService = selfboxService;
    
           }
    
           @Value("#{sysconfig['file.folder']}")
    
           private String fileFolder;
    
          
    
           @RequestMapping(value="/insertbox")
    
           @ResponseBody
    
           public MyResult insertbox( MultipartFile file,Selfbox selfbox,HttpServletRequest request) throws IOException{
    
                  try {
    
                         selfbox.setId(UUID.randomUUID().toString());
    
                         if(!file.isEmpty())
    
                         {
    
                                //上传文件
    
                                //上传地址
    
                                String path = request.getSession().getServletContext().getRealPath("/file");
    
                                //获取文件名
    
                                String boxorder_name = file.getOriginalFilename();
    
                                //获取文件的后缀名
    
                                String extensionName = boxorder_name.substring(boxorder_name.lastIndexOf(".")+1);
    
                                //获得id
    
                                String id = selfbox.getId();
    
                                //设置文件上传后的名称
    
                                String newfile = id+"."+extensionName;
    
                                //文件的传输保存
    
                                file.transferTo(new File(fileFolder + "/pdf/returnNote/"+newfile));
    
                                //把文件路径保存到数据库
    
                                selfbox.setBoxorder(newfile);                          
    
                         }
    
                         selfboxService.insertSelfbox(selfbox);
    
                         return new MyResult(1, "已成功添加箱安排!");
    
                  } catch (RuntimeException e) {
    
                        
    
                         return new MyResult(0, "添加箱安排失败!");
    
                  }
    
           }

    Form表单

    <form id="ZIBEI_form" method="post" enctype="multipart/form-data">
    
           <input name="class_east_west" type="hidden">
    
           <input name="arrage_id" type="hidden" />     
    
          
    
           <table style="padding:10px;">
    
                  <tr>
    
                         <td align="right" style="70px">箱型箱量:</td>
    
                         <td><span  class="containerTypeAndQuantity"></span></td>
    
                         <td colspan="3"><label>TEUs:</label>
    
                                <span class="needsTeus"  style="color:red" ></span>/<span class="destTeus"></span>
    
                         </td>
    
                  </tr>
    
                  <tr><td colspan="4"><hr/></td></tr>
    
                  <tr>
    
                         <td align="right">空重箱:</td>
    
                         <td colspan="3">
    
                                <input type="radio" name="check_height" value="0" checked="checked" style="20px;" checked /><label>空</label>
    
                                <input type="radio" name="check_height" value="1"  style="20px;" /><label>重</label>
    
                         </td>
    
                  </tr>
    
                  <tr>
    
                         <td align="right">自备箱箱型:</td>
    
                         <td ><input id="ZIBEI_containerType" name="containerTypeCode"  data-options="min:1" /></td>
    
                         <td align="right">自备箱数量:</td>
    
                         <td colspan="1">
    
                                <input id="ZIBEI_quantity" name="quantity" class="easyui-numberspinner"
    
                                       data-options="min:1" style="50px;"/>
    
                                <span class="quotaTeus" style="margin-left:10px;"></span>
    
                               
    
                         </td>
    
                  </tr>
    
                        
    
                  <tr><td colspan="4"><hr/></td></tr>
    
          
    
                  <tr style="margin-top:10px;" id="txcs">
    
                         <td align="right" id="city">提箱城市:</td>
    
                         <td><input id="self_city" name="self_city" ></td>
    
                  </tr>
    
                  <tr style="margin-top:10px;" id="txdznr">
    
                         <td align="right" id="txdztext">提箱堆场地址:</td>
    
                         <td><input id="yardadress" name="yardadress" ></td>
    
                  </tr>
    
                  <tr>
    
                         <td align="right" id="flag">是否有还箱指令:</td>
    
                         <td colspan="3">
    
                                <input type="radio" name="flag" value="0" checked="checked" style="20px;" checked /><label>否</label>
    
                                <input type="radio" name="flag" value="1"  style="20px;" /><label>是</label>
    
                         </td>
    
                  </tr>
    
                  <tr id="txdnr">
    
                         <td align="right" id="txdtext">提箱单:</td>
    
                         <td>
    
                         <input class="easyui-filebox" id="txd" name="file" data-options="prompt:'请选择文件'"
    
                                       style="100%">
    
                         </td>
    
                  </tr>
    
                  <tr>
    
                         <td align="right">联系人:</td>
    
                         <td><input class="easyui-textbox" id="dclxr" name="linkman"></td>
    
     
    
                  </tr>
    
                  <tr>
    
                         <td align="right">电话:</td>
    
                         <td>
    
                         <input class="easyui-textbox" id="bgdh" name="phone">
    
                         </td>
    
     
    
                  </tr>
    
     
    
                  <tr><td colspan="4">&nbsp;</tr>
    
                 
    
           </table>
    
     
    
    </form>
    
    </div>

    Form表单是利用easyui和ajax提交的,我也不是太会,等以后会了再说吧

  • 相关阅读:
    如何用Java编写一段代码引发内存泄露
    获取一天的开始时间和结束时间
    servlet,jsp,tomcat,jdk对应版本关系,如何查看jsp和servlet版本信息
    什么是元数据?
    什么是Device ID?
    如何查看移动设备标识码
    手机wifi的mac地址是什么??
    MD5摘要
    落地页和离线广告
    广告行业一些常用物料的尺寸
  • 原文地址:https://www.cnblogs.com/shendaxia1/p/9437204.html
Copyright © 2011-2022 走看看