小程序下载网络图片提示非合法域名
小程序下载网络图片处理
小程序开发过程中经常会遇到下载网络图片功能,但是网络图片的链接却并未添加到 downloadfile合法域名,尤其是遇到图片来源并非同一域名下时,总不能每个域名都去配置添加,解决方式可通过服务器存储后再下载,操作code如下:
public function getImgUrl(){
$img = "http://xxxxxx.com"; //图片原始地址 (小程序get或者post过来都可以)
$uimg = $this->curl_data($img); //使用curl方式获取图片内容(自行编写curl_data,你肯定会的!)
$save_path = '/www/wwwroot/xxxxxx/public/qmpic/'; // 图片保存的地址(xxxxxx为项目名)
$file_name = uniqid().time().'.png'; // 截取网络图片的名称,用做保存的图片名称 可根据自己需求自己修改
# 如果目录不存在,创建要保存的目录
if(!file_exists($save_path)){
mkdir($save_path ,0777,true);
}
$fp = fopen($save_path .$file_name ,'a');
fwrite($fp, $uimg);
fclose($fp);
//拼装项目下图片地址(此域名肯定是已经加入过配置)
$img = 'https://xxxxxx/qmpic/'.$file_name;
return $img;
}
将图片链接返回到小程序后使用方式code如下:
wx.downloadFile({
url: img_url, //返回的图片链接
success: function(res) {
var temp = res.tempFilePath
wx.saveImageToPhotosAlbum({ //调用相册存储权限保存
filePath: temp,
success: function(res) {
return resolve(res)
},
fail: function(err) {
reject(url + JSON.stringify(err))
}
})
},
fail: function(err) {
reject(url + JSON.stringify(err))
}
})