微信小程序显示流格式照片

1.服务端,java代码,用于将图片转为文件流返回给前端

java 复制代码
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Demo {

    @GetMapping("/aaaaaa")
    public ResponseEntity<Resource> getImage(String imageName) throws Exception {
        // 构建图片的路径
        Path imagePath = Paths.get("D:\\1.png");
        
        // 检查文件是否存在
        if (!Files.exists(imagePath)) {
            throw new Exception("Image not found");
        }
        
        // 将图片文件转换为Resource对象,以便Spring管理
        Resource resource = new UrlResource(imagePath.toUri());
        
        // 设置响应头,指定内容类型和文件名(对于下载特别有用)
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=" + imageName);
        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.IMAGE_PNG_VALUE); // 根据实际情况调整MIME类型
        
        // 返回文件流和响应头
        return ResponseEntity.ok()
                .headers(headers)
                .body(resource);
    }
}

2.微信小程序端,请求文件流,并将图片转码

javascript 复制代码
getImage(){
	const that = this
	uni.request({
		url:"http://127.0.0.1/aaaaaa",
		method: 'GET',
		dataType:'json',
		responseType: 'arraybuffer', // 指定返回类型为二进制数据流
		data: {},
		success:(res)=>{
			// 将返回的文件流数据写入临时文件
			const fsm = wx.getFileSystemManager();
			const filePath = wx.env.USER_DATA_PATH + '/temp-image.jpg';
			fsm.writeFile({
			  filePath: filePath,
			  data: res.data,
			  encoding: 'binary',
			  success() {
				// 将临时文件路径绑定到页面上的image组件
				that.imgSrc=filePath;
			  }
			});
		},
		
	})
}
相关推荐
码出财富12 分钟前
SpringBoot 内置的 20 个高效工具类
java·spring boot·spring cloud·java-ee
我是小疯子6633 分钟前
Python变量赋值陷阱:浅拷贝VS深拷贝
java·服务器·数据库
森叶42 分钟前
Java 比 Python 高性能的原因:重点在高并发方面
java·开发语言·python
二哈喇子!1 小时前
Eclipse中导入外部jar包
java·eclipse·jar
微露清风1 小时前
系统性学习C++-第二十二讲-C++11
java·c++·学习
进阶小白猿1 小时前
Java技术八股学习Day20
java·开发语言·学习
gis开发1 小时前
【无标题】
java·前端·javascript
Wpa.wk2 小时前
性能测试 - 搭建线上的性能测试环境参考逻辑图
java·经验分享·测试工具·jmeter·性能测试
代码村新手2 小时前
C++-类和对象(中)
java·开发语言·c++
葵花楹2 小时前
【JAVA课设】【游戏社交系统】
java·开发语言·游戏