php把圖片保存到本地
⑴ php如何下載動態圖片保存到本地
php 遠程下載文件
function http($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir) && @mkdir($dir,0755,true);
$url = str_replace(" ","%20",$url);
if(function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$temp = curl_exec($ch);
if(@file_put_contents($file, $temp) && !curl_error($ch)) {
return $file;
} else {
return false;
}
} else {
$opts = array(
"http"=>array(
"method"=>"GET",
"header"=>"",
"timeout"=>$timeout)
);
$context = stream_context_create($opts);
if(@($url, $file, $context)) {
//$http_response_header
return $file;
} else {
return false;
}
}
}
⑵ php中如何調用資料庫中的圖片並且顯示到頁面
php是採用二進制形式存儲圖片及讀取顯示的,首先通過代碼創建數據表,然後上傳圖片伺服器再通過瀏覽器顯示,具體編程代碼舉例:
1、首先需要創建數據表,具體代碼如下圖所示。
⑶ PHP網路圖片本地化 原圖片轉換成本地化後的圖片
用網路的UEditor其中有個遠程圖片抓取交互,可以實現你的要求。
1、遠程抓取原理
圖片遠程抓取是指在插入本地域名之外的圖片鏈接地址時,由伺服器將這些外部圖片抓取到本地伺服器保存的一個功能。實現原理為在編輯器中向伺服器發送包含所有外域圖片地址的ajax請求,然後由伺服器在後端抓取保存後返回圖片地址給編輯器,再由編輯器完成外域地址和本地地址的替換工作。
//是否開啟遠程圖片抓取
catchRemoteImageEnable:true,
//處理遠程圖片抓取的地址
catcherUrl:URL+"server/submit/php/getRemoteImage.php",
//提交到後台遠程圖片uri合集的表單名
catchFieldName:"upFile",
//圖片修正地址,同imagePath
catcherPath:fixedImagePath,
//本地頂級域名,當開啟遠程圖片抓取時,除此之外的所有其它域名下的
//圖片都將被抓取到本地
localDomain:[".com","10.81.2.114"],
2、注意事項
遠程抓取功能是否開啟可在edicot_config.js中通過配置catchRemoteImageEnable參數實現。與這個功能相關的配置還包括了遠程抓取的處理程序地址,表單域名稱,本地域和「前後端修正地址」。遠程抓取處理程序實現了依據前端提交的地址列表(使用ue_separate_ue標示符進行分隔的字元串)進行圖片抓取,然後返回地址列表給客戶端的功能。
前後台交互數據格式樣例:(URL1,URL2,URL3,URL4)
URL1ue_separate_ueURL2ue_separate_ueURL3ue_separate_ueURL4
⑷ php代碼保存遠程圖片到本地,出現重復建立文件夾,是怎麼回事出現嵌套建立文件夾
沒用過php,但如果出現這個問題就一定是if(file_exists($fname))判斷出的錯,試試將
$fname='yong/'.$id;改成
$fname='/yong/'.$id;試試看
或者要檢查的話,就在if(file_exists($fname)){ 上面加一行輸出一下file_exists($fname)看看每次判斷的結果。
⑸ php 怎麼上傳完圖片之後,給這個圖片打水印,並且保存在另一個文件夾
這個php中的圖片處理類完全足夠了,使用圖片水印
$groundImg = "DSC05940.jpeg";
$groundInfo = getimagesize($groundImg);
$ground_w = $groundInfo[0];
//print_r($groundInfo);
$ground_h = $groundInfo[1];
switch($groundInfo[2]){
case 1:
$ground_im = imagecreatefromgif($groundImg);
break;
case 2:
$ground_im = imagecreatefromjpeg($groundImg);
break;
case 3:
$ground_im = imagecreatefrompng($groundImg);
break;
}
$waterImg = "DSC05949.jpeg";
$imgInfo =getimagesize($waterImg);
$water_w = $imgInfo[0];
$water_w = $imgInfo[1];
switch($imgInfo[2]){
case 1:
$water_im = imagecreatefromgif($waterImg);
break;
case 2:
$water_im = imagecreatefromjpeg($waterImg);
break;
case 3:
$water_im = imagecreatefrompng($waterImg);
break;
}
image($ground_im,$water_im,100,100,0,0,500,500);
header("Content-type: image/jpeg");
imagejpeg($ground_im);
這些都很麻煩,建議使用框架,很多框架都提供了圖片處理類供使用
⑹ php 如何將多張圖片壓縮下載到本地 ,詳細一點,有案例更好!!謝謝各位了
php的壓縮方式
<?php
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
?>
用php下載多張圖片
<?php
set_time_limit(0);//設置PHP超時時間
$aImgList = array_unique($aImgList );
foreach($aImgList as $lists) {
file_put_contents(basename($lists), file_get_contents($lists));
}
?>