抓取(下载地址的)图片,file_get_contents()不能用

抓取图片内容,php内置函数file_get_contents()不能用可以使用下面方法,抓取的文件是文件流的形式,如果是直接上传的图片用下面的curl抓取就不一定好用了

			$img_url = $aa['Data']['ImageURL'];//这里是图片文件流
			$img_date = time();
			$ch = curl_init ($img_url);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
			  // 如果是https的话,就加上这两句
			 // https请求 不验证证书和hosts
			 // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    
			 // curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
			$img = curl_exec ($ch);
			curl_close ($ch);
			$image_name = "uploads/images" . "/" . $img_date . ".png";
			//$image_name就是要保存到什么路径,默认只写文件名的话保存到根目录
			$fp = fopen($image_name,'w');//保存的文件名称用的是链接里面的名称
			fwrite($fp, $img);
			fclose($fp);
			$imgg = "http://applets.maymotion.com/".$image_name;
			return $this->test_code(0,$imgg);

建议使用如下方法:

//这里是在tp5里写的上传视频方法,不过上传视频和图片都差不多
public function video_add(){
	$video = $_FILES["video"];
	$imagesExt=['mp4'];//上传视频用的
	$path = "./uploads/video";//上传视频用的
	//$imagesExt=['jpg','png','gif','jpeg'];//上传图片用的
	//$path = "./uploads/image";//上传图片用的
	$ext = strtolower(pathinfo($video['name'],PATHINFO_EXTENSION));
	        // 判断文件类型
	if (!in_array($ext,$imagesExt)){
		return $this->code(1,"error","文件类型需要是mp4格式的");
	}
	// 判断是否存在上传到的目录
	if (!is_dir($path)){
		mkdir($path,0777,true);
	}
	// 生成唯一的文件名
	$fileName = md5(uniqid(microtime(true),true)).'.'.$ext;
	// 将文件名拼接到指定的目录下
	$destName = $path."/".$fileName;
	// 进行文件移动
	if (!move_uploaded_file($video['tmp_name'],$destName)){
		return 1001;//文件上传失败
	}
	$src = "域名/uploads/video/".$fileName;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值