• 图片的上传与存储


                                                            ------------------------------ 你的时间不多了,抓紧做你想做的事情 

    一、常用方法

          1) 将图片进行 base46编码, 然后存储到数据库中

          2) 对图片进行二进制编码,存储到数据库、

          3) 将图片存储到文件系统中,数据库存储文件的地址

         结论: 数据库多么的宝贵,一般不直接将图片存储到数据库中,都是存储到其他地方,然后获取这个地址,使用第三种方法(这个地址就是图片在服务其上面的地址)

    二、 使用MutiPartFile 类实现文件上传   

      (1) 逻辑框图

                

       (2)前端页面:

     1 <body>  
     2 <h2>文件上传实例</h2>  
     3   
     4   
     5 <form action="fileUpload.html" method="post" enctype="multipart/form-data">  
     6     选择文件:<input type="file" name="file">  
     7     <input type="submit" value="提交">   
     8 </form>  
     9</body>  

       注意: 上面的cnctype 必须为 multipart/form-data

      (3)后端处理

           @RequestMapping("fileUpload")  
          public String fileUpload(@RequestParam("file") MultipartFile file) {  
              // 判断文件是否为空  
              if (!file.isEmpty()) {  
                  try {  
                      // 创建文件保存路径  
                      String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"  
                              + file.getOriginalFilename();  
                     // 转存文件  
                     file.transferTo(new File(filePath));  
                 } catch (Exception e) {  
                     e.printStackTrace();  
                 }  
             }  
             // 重定向  
             return "redirect:/list.html";  
         }  

       

    三、MutipartFile 类的常用方法
    interface MultipartFile {
    
    public byte[] getBytes();
    
    public String getContentType();    // 获取文件的类型
    
    public java.io.InputStream getInputStream();
    
    public String getName();   
    
    public String getOriginalFilename();   // 获取文件的名字
    
    public long getSize();  // 获取文件大小
    
    public boolean isEmpty(); // 判断文件是否为空
    
    public void transferTo(java.io.File dest);  // 将文件转存到其他的地方
    
    }

                              

  • 相关阅读:
    在简单地形上小车运动轨迹的数学表达(一)
    结尾
    第十四章 多线程编程
    第十五章 进程池与线程池
    第十章 信号
    第十一章 定时器
    第十三章 多进程编程
    第八章 高性能服务器程序框架
    KMP 专场 POJ2752
    约瑟夫问题 双链表实现
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/12178900.html
Copyright © 2020-2023  润新知