php保存远程图片
1. curl获取远程图片时,如何设置本地保存路径
设置保存路径
define('IMAGE_DIR', 'c:\\xampp\\htdocs\\scraper\\image\\');
保存图片函数。
$imageUrl = 你要的图片的url
$imageType = 你要的图片保存的格式
saveImage($imageUrl, $imageType = 'IMAGETYPE_GIF') {
if (!file_exists(IMAGE_DIR)) {
mkdir(IMAGE_DIR, 0777, true);
}
if( $imageType === IMAGETYPE_JPEG ) {
$fileExt = 'jpg';
} elseif ( $imageType === IMAGETYPE_GIF ) {
$fileExt = 'gif';
} elseif ( $imageType === IMAGETYPE_PNG ) {
$fileExt = 'png';
}
$newImageName = md5($imageUrl). '.' . $fileExt;
$image = new Image();
$image->load($imageUrl);
$image->resizeToWidth(100);
$image->save( IMAGE_DIR . $newImageName, $imageType );
return $newImageName;
}
这是我的图片类,保存前可转换格式,图片大小。
<?php
class Image {
private $_image;
private $_imageFormat;
public function load($imageFile) {
$imageInfo = getImageSize($imageFile);
$this->_imageFormat = $imageInfo[2];
if( $this->_imageFormat === IMAGETYPE_JPEG ) {
$this->_image = imagecreatefromjpeg($imageFile);
} elseif( $this->_imageFormat === IMAGETYPE_GIF ) {
$this->_image = imagecreatefromgif($imageFile);
} elseif( $this->_imageFormat === IMAGETYPE_PNG ) {
$this->_image = imagecreatefrompng($imageFile);
}
}
public function save($imageFile, $_imageFormat=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
if( $_imageFormat == IMAGETYPE_JPEG ) {
imagejpeg($this->_image,$imageFile,$compression);
} elseif ( $_imageFormat == IMAGETYPE_GIF ) {
imagegif($this->_image,$imageFile);
} elseif ( $_imageFormat == IMAGETYPE_PNG ) {
imagepng($this->_image,$imageFile);
}
if( $permissions != null) {
chmod($imageFile,$permissions);
}
}
public function getWidth() {
return imagesx($this->_image);
}
public function getHeight() {
return imagesy($this->_image);
}
public function resizeToHeight($height) {
$ratio = $height / $this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
public function resizeToWidth($width) {
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
public function scale($scale) {
$width = $this->getWidth() * $scale/100;
$height = $this->getheight() * $scale/100;
$this->resize($width,$height);
}
private function resize($width, $height) {
$newImage = imagecreatetruecolor($width, $height);
imageresampled($newImage, $this->_image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->_image = $newImage;
}
}
?>
2. php保存远程图片到本地
$img = file_get_contents('http://www.91cici.com/images/logo.gif');
file_put_contents('test.gif',$img);
3. php 函数的远程保存图片问题
我一般不用,直接使用file_get_contents()取得文件内容,再写入本地文件中去
4. thinkphp用file_put_contents()保存远程图片到服务器
你在逗我,怎么可能直接用程序直接写入另一个服务器。
我的思路是(没有试验过)
转换为图片为二进制文件进行上传到另一个服务器进行处理保存
转换图片为base64 用curl请求服务器进行处理
模拟表单请求
5. php代码保存远程图片到本地,出现重复建立文件夹,是怎么回事出现嵌套建立文件夹
没用过php,但如果出现这个问题就一定是if(file_exists($fname))判断出的错,试试将
$fname='yong/'.$id;改成
$fname='/yong/'.$id;试试看
或者要检查的话,就在if(file_exists($fname)){ 上面加一行输出一下file_exists($fname)看看每次判断的结果。
6. php 接收并保存图片
获取远程图片并把它保存到本地确定您有把文件写入本地服务器的权限变量说明: $url 是远程图片的完整URL地址,不能为空。
$filename 是可选变量:
如果为空,
本地文件名将基于时间和日期 自动生成.
7. PHP下载远程图片jpg 格式,
<?php
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize($path));
header("Content-Disposition:attachment;filename=".basename($path));
readfile($path);
?>
8. php怎么把远程图片通过api接口传到另外一个站点上
本地传图片到服务器叫上传,服务器从别的网站获取图片,这叫下载,这比上传还简单
$content = file_get_contents(图片地址);
file_put_contents(保存的路径文件名, $content);
9. php 把图片下载本地保存到指定目录中
/*
*@$urlstring远程图片地址
*@$dirstring目录,可选,默认当前目录(相对路径)
*@$filenamestring新文件名,可选
*/
functionGrabImage($url,$dir='',$filename=''){
if(empty($url)){
returnfalse;
}
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!=".jpg"&&$ext!=".bmp"){
echo"格式不支持!";
returnfalse;
}
//为空就当前目录
if(empty($dir))$dir='./';
//
$dir=realpath($dir);
//目录+文件
$filename=$dir.(empty($filename)?'/'.time().$ext:'/'.$filename);
//开始捕捉
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
$size=strlen($img);
$fp2=fopen($filename,"a");
fwrite($fp2,$img);
fclose($fp2);
return$filename;
}
//测试
GrabImage("此处网址/1.jpg","as.gif");
//PS:目录存在,权限判断,自创建等自己应该知道!
//个人喜欢绝对路径所以就那么写了