chatgpt 回答的是 blob ,还是无法显示。通过 a 标签下载下来的文件大小也不一致。 后端代码
func (a *App) Greet(name string) ([]byte, error) {
	
	pdfData, err := ioutil.ReadFile(".//aaa.pdf")
	if err != nil {
		return nil, err
	}
	return pdfData, nil
}
前端代码
const fetchBlob = async () => {
      try {
        
        const pdfData = await Greet('aaa');
        const blob = new Blob([pdfData], { type: 'application/pdf' });
        
        console.log(blob)
        const url = URL.createObjectURL(blob);
        setBlobUrl(url);
      } catch (error) {
        console.error('Error fetching blob:', error);
      }
    };
|  |      1dumbass      2024-07-03 11:34:42 +08:00 如果是用 axios 请求,要多加一个参数,返回的才是文件 { format: "blob" } | 
|  |      2maocat      2024-07-03 12:01:52 +08:00 via iPhone 前端应该接受的是 arrayuint8 这个得自己转一下 | 
|      3leyoumake1997      2024-07-03 13:00:05 +08:00 一般转 []byte 转 base64 都可以显示的到 Html 元素上的。wails 也支持 Assets Handle ([具体可以参考]( https://wails.io/zh-Hans/docs/guides/dynamic-assets)) | 
|  |      4LLaMA2      2024-07-03 14:28:40 +08:00 后端返回文件流字节码,同时在响应头带上 Content-Type 例如你的文件是 pdf , 那么 Content-Type:application/pdf 这样你的 microsift edge 浏览器默认就是可以看到 pdf 的, 如果是 image/png 之类的,可以直接将 url 写到 img 标签的 src 属性 如果是浏览器无法预览的文件,例如 exe, 那么头是 application/octet-stream ,浏览器会默认呼出下载 | 
|      5langhuishan OP 感谢楼上回答,最后还是用的 pdf.js |