`

文件上传(保存本地)和将文件转为base64

 
阅读更多

//文件上传相关代码

 @RequestMapping(value = "/testUploadFileTwo")

 @ResponseBody

 public String upload( HttpServletRequest Request,@RequestParam MultipartFile file1) {

   if (file1.isEmpty()) {

     return "文件为空";

   }

   //允许上传的文件类型

//    String fileType = "mp3,mp4,video,rmvb,pdf,txt,xml,doc,gif,png,bmp,jpeg";

   //允许上传的文件最大大小(100M,单位为byte)

//    int maxSize = 1024*1024*100;

   // 获取文件名

   String fileName = file1.getOriginalFilename();

   //获取上传文件大小

   String size = FormetFileSize(file1.getSize());

   // 获取文件的后缀名

//    String suffixName = fileName.substring(fileName.lastIndexOf("."));

   // 文件上传后的路径

   String filePath = "E://testNew//";

   // 将base64String转为文件转为的路径

   String fileNewPath = "E://testNew64//"+fileName;

   // 解决中文问题,liunx下中文路径,图片显示问题

//    fileName = UUID.randomUUID() + suffixName;

   filePath = filePath + fileName;

   File dest = new File(filePath);

   // 检测是否存在目录

   if (!dest.getParentFile().exists()) 

   {

     dest.getParentFile().mkdirs();

   }

   try 

   {

   file1.transferTo(dest);

   //將指定路径的文件转为base64字符串

   String base64String = MainController.file2Str(filePath);

   //将指定的base64字符串文件转为文件

   MainController.str2File(base64String, fileNewPath);

   return "上传成功";

   } catch (IllegalStateException e) {

     e.printStackTrace();

   } catch (IOException e) {

     e.printStackTrace();

   }

   return "上传失败";

 }

 

 /**

  * 将文件转化为字节数组字符串,并对其进行Base64编码处理  

  * @param file

  * @return

  */

   public static String file2Str(String file){  

       InputStream in = null;  

       byte[] data = null;  

       //读取文件字节数组  

       try{  

           in = new FileInputStream(file);          

           data = new byte[in.available()];  

           in.read(data);  

           in.close();  

       } catch (IOException e) {  

           e.printStackTrace();  

       }  

       return new String(Base64.encodeBase64(data));  

   }  

   

   /**

    * Base64解码  

    * @param fileStr 将要转码的字符串

    * @param filePath 生成的新路径

    * @return

    */

   public static boolean str2File(String fileStr,String filePath){  

       if (fileStr == null) //文件数据为空  

           return false;  

       try {  

           byte[] b = Base64.decodeBase64(fileStr);  

           for(int i=0;i<b.length;++i){  

               if(b[i]<0){//调整异常数据  

                   b[i]+=256;   

               }  

           }  

           // 检测是否存在目录,不存在新建文件

           File dest = new File(filePath);

       if (!dest.getParentFile().exists()) {

         dest.getParentFile().mkdirs();

       }

           //生成文件,并保存在服务器硬盘上的文件中 

           OutputStream out = new FileOutputStream(dest);      

           out.write(b);  

           out.flush();  

           out.close();  

           return true;  

       } catch (Exception e)  {  

           e.printStackTrace();  

           return false;  

       }  

   } 

   

   /**

    * 转换文件大小

    * @param fileS

    * @return

    */

   public String FormetFileSize(long fileS) {

       DecimalFormat df = new DecimalFormat("#.00");

       String fileSizeString = "";

       if (fileS < 1024) {

           fileSizeString = df.format((double) fileS) + "B";

       } else if (fileS < 1048576) {

           fileSizeString = df.format((double) fileS / 1024) + "K";

       } else if (fileS < 1073741824) {

           fileSizeString = df.format((double) fileS / 1048576) + "M";

       } else {

           fileSizeString = df.format((double) fileS / 1073741824) +"G";

       }

       return fileSizeString;

    }

分享到:
评论

相关推荐

    webGL 录音源码 转为base64文件保存本地

    WebGL录音源码转换成Base64并保存到本地是一个涉及前端音频处理、WebGL技术、数据编码以及Unity...这就是"webGL录音源码转为base64文件保存本地"涉及到的主要知识点,涵盖了前端开发、Unity集成和数据处理等多个方面。

    android录制视频并转为Base64格式

    它可以配置各种参数,如视频分辨率、帧率、编码格式等,并负责将录制的视频保存到本地文件。 2. **权限管理**:在AndroidManifest.xml文件中,需要添加`&lt;uses-permission&gt;`标签来请求录音和写入外部存储的权限。...

    VB实现图片转BASE64或BASE64转成图片

    VB6实现图片和BASE64之间的转换,巧用XML,通用性好,可以用于将图片远程上传服务器,保存数据库,或才接收服务器图片数据后,转换成图片本地显示。

    JavaScript将base64图片转换成formData并通过AJAX提交的实现方法

    然后使用`atob`函数(或者`unescape`函数,具体取决于base64字符串的开头标记)将编码后的字符串转为纯二进制字符串。这个字符串随后被转换成UTF-8编码的字节数组(通过`Uint8Array`),最后创建一个Blob对象。Blob...

    PHP实现本地图片转base64格式并上传

    传统的图片上传方式通常依赖于表单提交,而随着HTML5技术的发展,引入了新的API如FileReader,使得我们能够以更灵活的方式处理用户选择的本地文件,包括将图片转换为Base64编码并实时上传。这种方法在某些场景下特别...

    SpringMvc上传本地图片保存数据库并实时显示

    如果是Base64,可以创建一个JavaScript函数将Base64转为`&lt;img&gt;`标签。例如: ```html (id=${image.id})}" alt="Image"/&gt; ``` 并在后端创建一个返回图片的Controller方法。 8. **安全性与优化**: 为了安全,...

    vue项目base64字符串转图片的实现代码

    总的来说,Vue项目中将Base64字符串转为图片涉及到前端的文件读取和数据绑定,以及后端的Base64解码和图片存储。通过以上示例,我们可以实现从用户选择文件到展示图片,再到提交Base64数据到后端并生成图片的完整...

    支持本地文件上传下载程序

    前端可以使用HTML5的`&lt;img&gt;`标签加载,后端需要将图片内容转为Base64编码或提供流式下载。 2. **MP3音频**:音频文件可以通过HTML5的`&lt;audio&gt;`标签播放,后端同样需要正确设置Content-Type头为'audio/mpeg'。 3. *...

    微信小程序在线签名-支持-上传-图片base64-旋转图片

    将图片转为Base64后,可以直接在Canvas上绘制,或者用于其他后续处理。 旋转图片的功能则需要用到Canvas的旋转变换。通过`context.rotate()`方法,我们可以设定一个角度来旋转Canvas的坐标系,从而实现图片的旋转。...

    js调用本地摄像头拍照并上传到web服务器

    在这个例子中,用户点击“拍照”按钮后,`getUserMedia`会打开摄像头,`drawImage`则将摄像头的实时画面绘制到canvas上,并通过`toDataURL`方法将canvas内容转为base64编码的JPEG图片。然后,`uploadImage`函数将...

    SpringMVC 上传文件 MultipartFile 转为 File的方法

    在这个例子中,我们首先读取文件内容到字节数组,然后使用`Base64.getEncoder().encodeToString()`将字节数组转换为Base64编码的字符串。最后,别忘了在处理完成后删除临时文件。 请注意,直接从`MultipartFile`...

    h5 图片压缩上传

    本话题将详细探讨如何实现H5本地图片压缩并将其以Base64编码的形式上传到服务器。 首先,我们需要理解HTML5中涉及的几个关键特性: 1. **Canvas**:HTML5的Canvas元素提供了一个图形绘制区域,我们可以利用其API...

    图片切割上传头像取最合适的

    使用Canvas的`toDataURL()`方法,可以将Canvas的内容转为Base64编码的图片URL,然后提交到服务器。 5. **优化选取**: 为了帮助用户选取最合适的头像,可以添加辅助线或比例尺,确保头像大小适中,符合预期的尺寸。...

    微信小程序学习用demo:XX周期;添加本地图片,选择日期

    如果需要上传到服务器,通常需要将图片转为Base64编码或者进行压缩以减小文件大小。 3. **文件上传服务**:微信小程序提供了`wx.uploadFile`接口,用于将本地资源上传到服务器。你需要先调用这个接口,然后在后端...

    易语言字节集与图片互换

    此外,本地文件操作中,也可以用字节集作为中间格式,方便数据的存取和转换。 具体实现步骤如下: 1. 读取图片文件:使用“文件打开”命令打开图片文件,然后用“文件读取”命令读取全部内容到字节集。 2. 将字节...

    微信小程序图像识别源码,微信小程序百度AI接口源码,微信小程序图片上传显示缩放缩略图,人工智能,图像识别,人脸颜值分析,植物

    开发者需要将图片转为Base64编码或文件二进制流,然后通过接口传送给服务器进行识别。 5. 人脸颜值分析:这是一种基于人脸识别技术的趣味应用,通过评估面部特征,计算出一个“颜值”分数。百度AI提供了人脸识别...

    vue.js多张图片上传

    - `readFile`中,我们使用FileReader的`readAsDataURL`方法将文件转为Base64编码的预览图片,然后将其添加到Vue实例的`files`数组中。 - 每张图片预览后,可以通过`v-for`指令循环渲染在页面上,同时提供删除按钮,...

    C#基类库(苏飞版)

    MySecurity--Security安全加密/Security Base64/Security文件加密,以及一些常用的操作方法 RSACryption RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 ...

    html转图片可自动下载,可批量导出,可批量下载

    这可以通过网络请求或者从本地文件系统读取完成。 2. **渲染到Canvas**:然后,使用Canvas API将HTML内容绘制到Canvas上。这一步通常涉及到解析HTML,创建对应的Canvas绘图命令,如`fillText`用于文本,`drawImage`...

Global site tag (gtag.js) - Google Analytics