php模擬遠程上傳圖片,php抓取遠程圖片到本地

本文目錄一覽:

php如何實現,遠程傳一張照片回來,在數據庫進行比對識別,有相同的就取出相關信息

數據庫,你可能保存有圖片的文件名,大小,格式化,來本地文件路徑,

把傳過來的圖片的這三個特徵在數據庫查找一下,如果存在,就幾乎可以判斷是同一個文件,

如果你要更準確一些,就用file_get_contents()把文件內容讀出來進行對比。

怎樣用php實現上傳圖片到數據庫

php實現上傳圖片保存到數據庫的方法。具體分析如下:

php 上傳圖片,一般都使用move_uploaded_file方法保存在服務器上。但如果一個網站有多台服務器,就需要把圖片發佈到所有的服務器上才能正常使用(使用圖片服務器的除外)

如果把圖片數據保存到數據庫中,多台服務器間可以實現文件共享,節省空間。

首先圖片文件是二進制數據,所以需要把二進制數據保存在mysql數據庫。

mysql數據庫提供了BLOB類型用於存儲大量數據,BLOB是一個二進制對象,能容納不同大小的數據。

BLOB類型有以下四種,除存儲的最大信息量不同外,其他都是一樣的。可根據需要使用不同的類型。

TinyBlob       最大 255B

Blob              最大 65K

MediumBlob  最大 16M

LongBlob      最大 4G

數據表photo,用於保存圖片數據,結構如下:

CREATE TABLE `photo` (  

  `id` int(10) unsigned NOT NULL auto_increment,  

  `type` varchar(100) NOT NULL,  

  `binarydata` mediumblob NOT NULL,  

  PRIMARY KEY  (`id`)  

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

upload_image_todb.php代碼如下:

?php  

// 連接數據庫  

$conn=@mysql_connect(“localhost”,”root”,””)  or die(mysql_error());  

@mysql_select_db(‘demo’,$conn) or die(mysql_error()); // 判斷action  

$action = isset($_REQUEST[‘action’])? $_REQUEST[‘action’] : ”; 

// 上傳圖片  

if($action==’add’){  

    $image = mysql_escape_string(file_get_contents($_FILES[‘photo’][‘tmp_name’]));  

    $type = $_FILES[‘photo’][‘type’];  

    $sqlstr = “insert into photo(type,binarydata) values(‘”.$type.”‘,'”.$image.”‘)”;  

    @mysql_query($sqlstr) or die(mysql_error());  

    header(‘location:upload_image_todb.php’);  

    exit();  

// 顯示圖片  

}elseif($action==’show’){  

    $id = isset($_GET[‘id’])? intval($_GET[‘id’]) : 0;  

    $sqlstr = “select * from photo where id=$id”;  

    $query = mysql_query($sqlstr) or die(mysql_error());  

    $thread = mysql_fetch_assoc($query);  

    if($thread){  

        header(‘content-type:’.$thread[‘type’]);  

        echo $thread[‘binarydata’];  

        exit();  

    }  

}else{  

// 顯示圖片列表及上傳表單  

?  

!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”  

html  

 head  

  meta http-equiv=”content-type” content=”text/html; charset=utf-8″  

  title upload image to db demo /title  

 /head  

  

 body  

  form name=”form1″ method=”post” action=”upload_image_todb.php” enctype=”multipart/form-data”  

  p圖片:input type=”file” name=”photo”/p  

  pinput type=”hidden” name=”action” value=”add”input type=”submit” name=”b1″ value=”提交”/p  

  /form  

  

?php  

    $sqlstr = “select * from photo order by id desc”;  

    $query = mysql_query($sqlstr) or die(mysql_error());  

    $result = array();  

    while($thread=mysql_fetch_assoc($query)){  

        $result[] = $thread;  

    }  

    foreach($result as $val){  

        echo ‘pimg 

src=”upload_image_todb.php?action=showid=’.$val[‘id’].’t=’.time().'”

 width=”150″/p’;  

    }  

?  

/body  

/html  

?php  

}  

?

程序運行截圖和數據庫截圖:

php通過api接口上傳遠程圖片,圖片不完整。

sybase_connect連上數據庫。

語法: int sybase_connect(string [servername], string [username], string [password]);

返回值: 整數函數種類: 數據庫功能 本函數用來打開與 Sybase 數據庫的連接。

參數 servername 為欲連上的數據庫服務器名稱。

參數 username 及 password 可省略,分別為連接使用的帳號及密碼。

使用本函數需注意早點關閉數據庫,以減少系統的負擔。

連接成功則返回數據庫的連接代號,失敗返回 false 值。

php怎麼把遠程圖片通過api接口傳到另外一個站點上?

本地傳圖片到服務器叫上傳,服務器從別的網站獲取圖片,這叫下載,這比上傳還簡單

$content = file_get_contents(圖片地址);

file_put_contents(保存的路徑文件名, $content);

用php的imagecreatefrompng創建圖像,怎麼直接上傳到遠程服務器

使用imagepng函數把圖像輸出到瀏覽器或者文件中。

bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )

Outputs or saves a PNG image from the given image.

用輸出緩衝ob_start等函數截獲imagepng對瀏覽器的輸出,保存在變量中,作為位元組數據發送到其他服務器即能實現上傳。

php如何上傳圖片到遠程服務器

可以使用curl這個擴展來實現。

PHP 支持的由Daniel Stenberg創建的libcurl庫允許你與各種的服務器使用各種類型的協議進行連接和通訊。

libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap協議。libcurl同時也支持HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴展完成)、HTTP 基於表單的上傳、代理、cookies和用戶名+密碼的認證。

curl_close() 關閉一個cURL會話。

curl_copy_handle()複製一個cURL句柄和它的所有選項。

curl_errno()返回最後一次的錯誤號。

curl_error()返回一個保護當前會話最近一次錯誤的字符串。

curl_escape()返迴轉義字符串,對給定的字符串進行URL編碼。

curl_exec()執行一個cURL會話。

curl_file_create()創建一個CURLFile對象。

curl_getinfo()獲取一個cURL連接資源句柄的信息。

curl_init()初始化一個cURL會話。

curl_multi_add_handle()向curl批處理會話中添加單獨的curl句柄。

curl_multi_close()關閉一組cURL句柄。

curl_multi_exec()運行當前cURL句柄的子連接

curl_multi_getcontent()如果設置了CURLOPT_RETURNTRANSFER,則返回獲取的輸出的文本流。

curl_multi_info_read()獲取當前解析的cURL的相關傳輸信息。

curl_multi_init()返回一個新cURL批處理句柄。

curl_multi_remove_handle()移除curl批處理句柄資源中的某個句柄資源。

curl_multi_select()等待所有cURL批處理中的活動連接。

curl_multi_setopt()設置一個批處理cURL傳輸選項。

curl_multi_strerror()返回描述錯誤碼的字符串文本。

curl_pause()暫停及恢復連接。

curl_reset()重置libcurl的會話句柄的所有選項。

curl_setopt_array()為cURL傳輸會話批量設置選項。

curl_setopt()設置一個cURL傳輸選項。

curl_share_close()關閉cURL共享句柄。

curl_share_init()初始化cURL共享句柄。

curl_share_setopt()設置一個共享句柄的cURL傳輸選項。

curl_strerror()返回錯誤代碼的字符串描述。

curl_unescape()解碼URL編碼後的字符串。

curl_version()獲取cURL版本信息。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/200583.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 20:02
下一篇 2024-12-05 20:02

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 用Python繪製酷炫圖片

    在本篇文章中,我們將展示如何使用Python繪製酷炫的圖片。 一、安裝Python繪圖庫 在使用Python繪製圖片之前,我們需要先安裝Python繪圖庫。Python有很多繪圖庫…

    編程 2025-04-29
  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網絡應用中流…

    編程 2025-04-29
  • Python如何抓取圖片數據

    Python是一門強大的編程語言,能夠輕鬆地進行各種數據抓取與處理。抓取圖片數據是一個非常常見的需求。在這篇文章中,我們將從多個方面介紹Python如何抓取圖片數據。 一、使用ur…

    編程 2025-04-29
  • Python利用Image加圖片的方法

    在Python中,利用Image庫可以快速處理圖片,並加入需要的圖片,本文將從多個方面詳細闡述這個操作。 一、Image庫的安裝和基礎操作 首先,我們需要在Python中安裝Ima…

    編程 2025-04-28
  • Avue中如何按照後端返回的鏈接顯示圖片

    Avue是一款基於Vue.js、Element-ui等技術棧的可視化開發框架,能夠輕鬆搭建前端頁面。在開發中,我們使用到的圖片通常都是存儲在後端服務器上的,那麼如何使用Avue來展…

    編程 2025-04-28
  • 使用CKSlide實現圖片輪播

    CKSlide是一個基於jQuery的插件,可以方便地為網頁添加幻燈片和圖片輪播效果。使用CKSlide可以讓網站更加生動、活潑,給用戶帶來更好的體驗。 一、CKSlide基本用法…

    編程 2025-04-28

發表回復

登錄後才能評論