ftp路径的网络照片 转成BASE64编码的时候,返回的值为空,如果用DEBUG一步一步执行转换方法是可以获取的。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ftp路径的网络照片 转成BASE64编码的时候,返回的值为空,如果用DEBUG一步一步执行转换方法是可以获取的。相关的知识,希望对你有一定的参考价值。

public String GetImageStr(String imgFilePath)
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
byte[] data = null; // 读取图片字节数组
try
URL url = new URL(imgFilePath);
URLConnection urlConnection = url.openConnection();
InputStream in1 = urlConnection.getInputStream();
data = new byte[in1.available()];
in1.read(data);
in1.close();
catch (IOException e)
e.printStackTrace();

// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
// 返回Base64编码过的字节数组字符串

用返回值转换出来的照片显示不完整。
需要大批量转换

参考技术A 这三个文件是系统中的重要文件在系统中的C:\WINDOWS\system32\dllcache\有备份的
你删除系统会自动扫描其是否完好 否则从C:\WINDOWS\system32\dllcache中恢复到system32下
当然也有可能是病毒替换了
如你所说我想不是中毒
若一定要删除可先删除C:\WINDOWS\system32\dllcache\下对应的文件再删除C:\WINDOWS\system32下的
注意dllcache是隐藏文件
并加有系统属性

解决将网络图片转成base64格式报跨域的问题

参考技术A 此前开发了一个前端生成海报的功能。但是由于海报的图片是网络路径的图片。所以在生成海报前需要把网络图片转成base64格式。
但是在转的途中。。发现,报跨域了。。。然后百度了一大堆看似靠谱的方法。

本来以为行了。然后打开控制台一看。canvas在转base64的时候跨域了。

Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported

百度了一下说给图片添加一个crossOrigin='Anonymous'就可以解决跨域。

但是加上后发现依旧是跨域。这下就头疼了。

后面偶然一次瞎操作,把crossOrigin='Anonymous'给提到了赋值src的前面。
也就是

结果竟然成功了。。。。。

附:如果服务端没有给图片设置请求头里的Access-C...A...O...字段的值为*或者你当前的域名。就算前端搞了这个跨域的玩意儿上去,依旧是拿不到图片的。

以上是关于ftp路径的网络照片 转成BASE64编码的时候,返回的值为空,如果用DEBUG一步一步执行转换方法是可以获取的。的主要内容,如果未能解决你的问题,请参考以下文章

把图片转成base64编码有啥好处吗?

解决将网络图片转成base64格式报跨域的问题

webapi批量上传照片到ftp服务器(base64)

php把网络图片转Base64编码。

php 将图片转成base64

JavaScript 之 FileReader简介以及原生uniapp如何将文件转成base64编码字符串示例