//文件上传相关代码
@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技术、数据编码以及Unity...这就是"webGL录音源码转为base64文件保存本地"涉及到的主要知识点,涵盖了前端开发、Unity集成和数据处理等多个方面。
它可以配置各种参数,如视频分辨率、帧率、编码格式等,并负责将录制的视频保存到本地文件。 2. **权限管理**:在AndroidManifest.xml文件中,需要添加`<uses-permission>`标签来请求录音和写入外部存储的权限。...
VB6实现图片和BASE64之间的转换,巧用XML,通用性好,可以用于将图片远程上传服务器,保存数据库,或才接收服务器图片数据后,转换成图片本地显示。
然后使用`atob`函数(或者`unescape`函数,具体取决于base64字符串的开头标记)将编码后的字符串转为纯二进制字符串。这个字符串随后被转换成UTF-8编码的字节数组(通过`Uint8Array`),最后创建一个Blob对象。Blob...
如果是Base64,可以创建一个JavaScript函数将Base64转为`<img>`标签。例如: ```html (id=${image.id})}" alt="Image"/> ``` 并在后端创建一个返回图片的Controller方法。 8. **安全性与优化**: 为了安全,...
总的来说,Vue项目中将Base64字符串转为图片涉及到前端的文件读取和数据绑定,以及后端的Base64解码和图片存储。通过以上示例,我们可以实现从用户选择文件到展示图片,再到提交Base64数据到后端并生成图片的完整...
前端可以使用HTML5的`<img>`标签加载,后端需要将图片内容转为Base64编码或提供流式下载。 2. **MP3音频**:音频文件可以通过HTML5的`<audio>`标签播放,后端同样需要正确设置Content-Type头为'audio/mpeg'。 3. *...
将图片转为Base64后,可以直接在Canvas上绘制,或者用于其他后续处理。 旋转图片的功能则需要用到Canvas的旋转变换。通过`context.rotate()`方法,我们可以设定一个角度来旋转Canvas的坐标系,从而实现图片的旋转。...
在这个例子中,用户点击“拍照”按钮后,`getUserMedia`会打开摄像头,`drawImage`则将摄像头的实时画面绘制到canvas上,并通过`toDataURL`方法将canvas内容转为base64编码的JPEG图片。然后,`uploadImage`函数将...
在这个例子中,我们首先读取文件内容到字节数组,然后使用`Base64.getEncoder().encodeToString()`将字节数组转换为Base64编码的字符串。最后,别忘了在处理完成后删除临时文件。 请注意,直接从`MultipartFile`...
本话题将详细探讨如何实现H5本地图片压缩并将其以Base64编码的形式上传到服务器。 首先,我们需要理解HTML5中涉及的几个关键特性: 1. **Canvas**:HTML5的Canvas元素提供了一个图形绘制区域,我们可以利用其API...
使用Canvas的`toDataURL()`方法,可以将Canvas的内容转为Base64编码的图片URL,然后提交到服务器。 5. **优化选取**: 为了帮助用户选取最合适的头像,可以添加辅助线或比例尺,确保头像大小适中,符合预期的尺寸。...
如果需要上传到服务器,通常需要将图片转为Base64编码或者进行压缩以减小文件大小。 3. **文件上传服务**:微信小程序提供了`wx.uploadFile`接口,用于将本地资源上传到服务器。你需要先调用这个接口,然后在后端...
开发者需要将图片转为Base64编码或文件二进制流,然后通过接口传送给服务器进行识别。 5. 人脸颜值分析:这是一种基于人脸识别技术的趣味应用,通过评估面部特征,计算出一个“颜值”分数。百度AI提供了人脸识别...
- `readFile`中,我们使用FileReader的`readAsDataURL`方法将文件转为Base64编码的预览图片,然后将其添加到Vue实例的`files`数组中。 - 每张图片预览后,可以通过`v-for`指令循环渲染在页面上,同时提供删除按钮,...
这可以通过网络请求或者从本地文件系统读取完成。 2. **渲染到Canvas**:然后,使用Canvas API将HTML内容绘制到Canvas上。这一步通常涉及到解析HTML,创建对应的Canvas绘图命令,如`fillText`用于文本,`drawImage`...
MySecurity--Security安全加密/Security Base64/Security文件加密,以及一些常用的操作方法 RSACryption RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 ...
在微信小程序中,获取小程序码并将其保存为图片是一个常见的需求,这通常涉及到后端服务器与小程序之间的交互。本文将详细讲解如何实现这一过程。 首先,我们要了解微信小程序获取小程序码的API。微信提供了`wx....
MySecurity--Security安全加密/Security Base64/Security文件加密,以及一些常用的操作方法 RSACryption RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 ...