function upload_pic_all($media_id_all,$file_url) {
$access_token = get_access_token();
//return $access_token;
if (!$access_token) return false;
$media_id_arr = explode(',', $media_id_all);
$all_filename='';
foreach ($media_id_arr as $media_id)
{
$url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=".$access_token."&media_id=".$media_id;
if (!file_exists(UPLOAD_PATH)) {
mkdir($file_url, 0775, true); //将图片保存到upload目录
}
$fileName = date('YmdHis').rand(1000,9999).'.jpg';
$targetName = $file_url. $fileName;
$ch = curl_init($url);
$fp = fopen($targetName, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp); // 设置输出文件的位置,值是一个资源类型
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
$all_filename .= $targetName.",,";
}
$all_filename_1=substr($all_filename,0,-2);
return $all_filename_1; //输出文件
}
上面的代码能正常下载并保存图片,但是保存的图片却打不开,用看图软件打开时提示格式不对,请问怎么回事?
需要转码,如下:
$url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=".$access_token."&media_id=".$media_id;
$data = base64_encode(file_get_contents($url));
$path = '/uploads/wx/' . date('Ymd') . '/';
if (!is_dir($_SERVER['DOCUMENT_ROOT'].$path)) {
mkdir($_SERVER['DOCUMENT_ROOT'].$path,0777,true);
}
$imageSrc= $path."/". $imageName; //图片名字
$r = file_put_contents($_SERVER['DOCUMENT_ROOT'].$imageSrc, base64_decode($data));//返回的是字节数
打印file_get_contents($url)这个出现{"errcode":40007,"errmsg":"invalid media_id"}这个错误怎么弄?
打印出$ch = curl_init($url);这个出现 Resource id #106和Resource id #107又是什么意思?