首页 > 编程知识 正文

php下载网络图片到电脑,php图片上传

时间:2023-12-27 22:26:11 阅读:323811 作者:YCHD

本文目录一览:

php 怎么从网上下载图片到本地

我想告诉你,除了显示网址,然后“另存为”或者用迅雷之类的下载外,php真的还无法下载到本地,好像是因为权限什么的。

我琢磨了好久都不可能下载到本地,除非你的服务器是建立在本地的。

我自己写了一个函数,用来拷贝图片的,用copy()不行。

你可以看看,其他文件格式同理。

//----------------------拷贝图片(包括网络图片)到指定网址------------------

//-------适用于图片类型包括:jpeg、gif、png-----------

function down_image($url1,$url2){//---$url1为源网址,$url2为目标网址---

$url1_info=pathinfo($url1);

$url2_info=pathinfo($url2);

$msg="拷贝成功!";

if($url1_info[extension]==$url2_info[extension]){

switch ($url1_info[extension]){

case "jpg":

$img=imagecreatefromjpeg($url1);

imagejpeg($img, $url2);

break;

case "gif":

$img=imagecreatefromgif($url1);

imagegif($img, $url2);

break;

case "png":

$img=imagecreatefrompng($url1);

imagepng($img, $url2);

break;

}

}else{

$msg="文件类型不正确,拷贝失败";

}

return $msg;

}

PHP如何自动下载图片并存入文件中,不是那种触发后会弹出窗口的而是能自动在后台完成的

    function download_remote_file($file_url, $save_to)

    {

        $content = file_get_contents($file_url);

        file_put_contents($save_to, $content);

    }

执行上边的方法$this-download_remote_file($from_url,$savename);

$from_url为图片的路径 $savename为要保存的路径(绝对路径)

php 把图片下载本地保存到指定目录中

/*

 *@$url string 远程图片地址

 *@$dir string 目录,可选 ,默认当前目录(相对路径)

 *@$filename string 新文件名,可选

 */

function GrabImage($url, $dir='', $filename=''){

 if(empty($url)){

  return false;

 }

 $ext = strrchr($url, '.');

 if($ext != '.gif'  $ext != ".jpg"  $ext != ".bmp"){

  echo "格式不支持!";

  return false;

 }

 

  //为空就当前目录

  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:目录存在,权限判断,自创建等自己应该知道!

//个人喜欢绝对路径所以就那么写了

PHP 怎样实现图片下载,而不是打开

代码如下:

?php

//对函数的说明

//参数说明 $file_name 文件名

//$file_sub_dir: 下载文件的子路径 '"/xxx/xxx/"

function down_file($file_name,$file_sub_dir){

//死去活来,演示下载一个图片.

//如果文件是中文.

//原因 php文件函数,比较古老,需要对中文转码 gb2312

$file_name=iconv("utf-8","gb2312",$file_name);

//绝对路径

$file_path=$_SERVER['DOCUMENT_ROOT'][

].$file_sub_dir.$file_name;

//1.打开文件

if(!file_exists($file_path)){

echo "文件不存在!";

return ;

}

$fp=fopen($file_path,"r");

//2.处理文件

//获取下载文件的大小

$file_size=filesize($file_path);

if($file_size30){

echo "script language='javascript'window.alert('过大')/script";

return ;

}

//返回的文件

header("Content-type: application/octet-stream");

//按照字节大小返回

header("Accept-Ranges: bytes");

//返回文件大小

header("Accept-Length: $file_size");

//这里客户端的弹出对话框,对应的文件名

header("Content-Disposition: attachment; filename=".$file_name);

//向客户端回送数据

$buffer=1024;

//为了下载的安全,我们最好做一个文件字节读取计数器

$file_count=0;

//这句话用于判断文件是否结束

while(!feof($fp) ($file_size-$file_count0) ){

$file_data=fread($fp,$buffer);

//统计读了多少个字节

$file_count+=$buffer;

//把部分数据回送给浏览器;

echo $file_data;

}

//关闭文件

fclose($fp);

}

//测试函数是否可用

down_file("顺平.jpg","/http/down/");

?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。