更新時(shí)間:2018-03-20 來(lái)源:黑馬程序員 瀏覽量:
一、功能介紹
目前有很多app在用戶發(fā)布照片信息之后能夠準(zhǔn)確的顯示出手機(jī)型號(hào)、地址、高度等信息,那么這些信息是如何獲取的呢?本次專題就這個(gè)問(wèn)題來(lái)闡述信息的獲取。
二、實(shí)現(xiàn)效果
* 以QQ空間相冊(cè)照片效果為例:
三、PHP獲取照片信息功能實(shí)現(xiàn)
1、具備前提
環(huán)境要求:
php必須開(kāi)啟mbstring擴(kuò)展和exif擴(kuò)展;
文件要求:
讀取的照片必須是未經(jīng)處理的照片(如壓縮,裁剪等);
2、具體步驟
1. 開(kāi)啟php對(duì)應(yīng)的擴(kuò)展,隨后重啟web軟件;
去掉對(duì)應(yīng)擴(kuò)展前面的注釋符號(hào)。
2.創(chuàng)建讀取照片的靜態(tài)頁(yè)面,實(shí)現(xiàn)文件的選取與上傳
效果如下:
如需要效果好看些許,可以考慮使用第三方上傳組件,此處以webuploader為例,官網(wǎng)地址:
http://fex.baidu.com/webuploader/getting-started.html#%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0
可以根據(jù)官網(wǎng)步驟實(shí)現(xiàn)上述效果。
需要注意的是,以下幾個(gè)地方代碼需要進(jìn)行調(diào)整:
根據(jù)自身情況修改對(duì)應(yīng)的路徑
3.編寫(xiě)上傳處理文件fileupload.php文件,實(shí)現(xiàn)文件的上傳處理
該文件中重點(diǎn)步驟為第23行,由于此前已經(jīng)開(kāi)啟了了exif擴(kuò)展,此處可以借助exif相關(guān)函數(shù)操作文件。
第24行代碼為輸出的設(shè)備信息,交給前段模板繼續(xù)處理。
4.完善前段回調(diào)處理
在上傳模板中編寫(xiě)一個(gè)空白div,用于展示返回信息
在上傳成功回調(diào)函數(shù)出完善回顯
5.測(cè)試
此時(shí)基本已經(jīng)大功告成,我們可以選擇一個(gè)手機(jī)拍攝的照片進(jìn)行測(cè)試,觀察測(cè)試結(jié)果
上傳前的效果:
上傳后的效果:
根據(jù)前后圖的對(duì)比,測(cè)試結(jié)果是正確的,說(shuō)明信息讀取成功。
四、總結(jié)
php的exif擴(kuò)展除了能夠獲取拍攝設(shè)備的基本信息之外,還可以獲取更多的信息,如經(jīng)緯度,高度,曝光時(shí)間等多達(dá)50余項(xiàng)的信息。一個(gè)看似很高大上的功能在php中只需要依靠一個(gè)擴(kuò)展加之幾行代碼就可以實(shí)現(xiàn)了。
本文版權(quán)歸黑馬程序員PHP學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員PHP培訓(xùn)學(xué)院
首發(fā):http://php.itheima.com/