java后台接受到图片后怎么保存

      Java是一门面标的目的对象编程说话,不仅接收了C++说话的各类长处,还摒弃了C++里难以理解的多担当、指针等概念,是以Java说话具有功能壮大和简单易用两个特征。Java说话作为静态面标的目的对象编程说话的代表,极好地实现了面标的目的对象理论,许可程序员以优雅的思维体例进行复杂的编程  。

      Java具有简单性、面标的目的对象、分布式、健壮性、平安性、平台自力与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。

工具/原料

  • 电脑
  • intellij IDEA或者eclipse

第一步调:参考功能。

  1. 1

    第一步:借助于springmvc框架的平台实现。

    1、参考:Ajax上传文件并显示进度条

    1.1 前台按照原生的js实现异步上传功能。

    2、springboot实现图片上传本家儿要也是借助于springboot+表单实现上传的功能

    2Ajax上传文件并显示进度条

    1springboot实现图片上传

  2. 2

    第二步:java网页下载功能怎么获取文件名。

    下载可以参考:零丁介绍下载一般要如何操作

    2java网页下载功能怎么获取文件名

    1springboot实现下载图片

  3. 3

    第三步:前端如何实现冲破预览结果。

    1、参考经验:js如何显示图片

    0js如何显示图片

第二步调:本家儿要功能实现。

  1. 1

    springboot默认是集当作springmvc,利用springboot和直接利用springmvc上传是一样的。

  2. 2

    前端代码:

    1、具体代码如下所示:

    此处直接利用的表单同步提交。

    <!DOCTYPE html>

    <html>


    <head>

    <title>图片上传</title>

    <meta name="keywords" content="keyword1,keyword2,keyword3"></meta>

    <meta name="description" content="this is my page"></meta>

    <meta name="content-type" content="text/html; charset=UTF-8"></meta>

    </head>


    <body>

    <form enctype="multipart/form-data" method="post" action="/testUploadimg"> 

    图片:<input type="file" name="file" /><br/> 

    <input type="submit" value="上传" />.

    </form>

    </body>


    </html>

  3. 3

    节制器UploadController 实现

    UploadController 本家儿要分为3部门

    1.1 调整页面请求goUploadImg


    1.2 上传请求方式uploadImg


    1.3 存储图片方式uploadFile


    @Controllerpublic class UploadController {    

    //跳转到上传文件的页面    

    @RequestMapping(value = "/gouploadimg", method = RequestMethod.GET)    

    public String goUploadImg() {        

    //跳转到 templates 目次下的 uploadimg.html        

    return "uploadimg";    

    }    

    //处置文件上传    

    @ResponseBody //返回json数据    

    @RequestMapping(value = "/testUploadimg", method = RequestMethod.POST)    

    public String uploadImg(@RequestParam("file") MultipartFile file,                            

    HttpServletRequest request) {        

    tring contentType = file.getContentType();        

    String fileName = file.getOriginalFilename();        

    String filePath = "D:/img";        

    if (file.isEmpty()) {            

    return "文件为空!";        

    }        

    try {            

    uploadFile(file.getBytes(), filePath, fileName);        

    } catch (Exception e) {            

    // TODO: handle exception        

    }        

    //返回json        

    return "上传当作功";    

    }    

    public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {        

    File targetFile = new File(filePath);        

    if (!targetFile.exists()) {            

    targetFile.mkdirs();        

    }        

    FileOutputStream out = new FileOutputStream(filePath +"/"+ fileName);        

    out.write(file);        

    out.flush();        

    out.close();    

    }

    }


    2:同时需要将上传图片的原始文件名和存储文件名、以及联系关系id存入一个数据表中。

    2.1 将存储文件名设置为UUID,避免存储文件名反复

    public static String getUUID(){

            UUID uuid=UUID.randomUUID();

            String str = uuid.toString(); 

            String uuidStr=str.replace("-", "");

            return uuidStr;

          }

    2.2 将存储文件名按照时候生当作,避免存储文件名反复

    System.nanoTime() 

    该函数是返回纳秒的。1毫秒=1纳秒*1000*1000
    如:long time1=System.nanoTime();

    2.3 或者借助于SimpleDateFormat 将Date格局化到毫秒也可以解决文件重名的问题。

  4. 4

    测试。

    打开页面地址如下图所示:

  • 发表于 2019-06-08 20:11
  • 阅读 ( 129 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论