
推 ming220:其實按上一篇的L大建議的作法, 將遠端的圖檔抓回來, 再存 10/19 17:32
→ ming220:在本地端即可滿足你的需求. 既然將圖檔都存在本地端了,檔 10/19 17:33
→ ming220:名就隨便取囉. 10/19 17:33
→ ming220:至於上面原文提到, 存入資料庫的一長串 code, 那是圖片本 10/19 17:34
→ ming220:身(binary), 跟檔名無關 ~ 10/19 17:34
→ kylekai:把抓圖另存新檔, 產生FPDF. 兩件事情分開來看... 10/19 18:03
→ kylekai:如果你一直搞不清楚這兩件事情是不一樣的兩件事情.. 10/19 18:04
→ kylekai:一直混在一起, fpdf 加入圖片應該是很難弄的好... 10/19 18:04
→ teaRsis:我知道是兩件事情阿~ 現在就是在研究圖片抓到本機並存取 10/19 18:10
→ teaRsis:然後再取得資料庫中的圖片檔案名稱 10/19 18:11
→ teaRsis:問題是不知道把圖片怎樣下載並存到資料庫 10/19 18:13
→ teaRsis:編譯圖片存起來就只是存資訊,並沒有存圖進去~ 10/19 18:14
→ kylekai:根本不用存到資料庫阿... 10/19 18:15
→ kylekai:你只是要抓下來塞去 fpdf 用, 塞去資料庫幹麼?... 10/19 18:15
→ kylekai:fpdf 要得是一個檔案, 你直接存下來丟在 tmp 暫存就好了.. 10/19 18:16
→ kylekai:那個"假會"的存入資料庫幹麼?... 10/19 18:16
當然~存到暫存檔直接使用比較省空間阿!
不過重點是我不知道怎樣把抓到那個檔案放到暫存檔
並取得他在暫存檔中的檔案名稱
我只知道用 form 上傳檔案後可以自動取得暫存檔的相關資訊
http://forum.twbts.com/thread-581-1-1.html
因為不知道到怎樣使用暫存
才想說使用各位高手建議的方法
使用file_get_contents去抓資料
也的確「抓到他」了~但不知道是抓到哪去?
後來上網查了wget的方法
在命令列下:
$ wget "chart.apis.google.com/chart?cht=gom&chd=t:100&chl=0&chs=340x230" -O
f1.png
可以取得一個f1.png的檔案在那個資料夾
不過把那個指令放到PHP中就無效化
<?
exec("wget chart.apis.google.com/chart?cht=gom&chd=t:100&chl=0&chs=340x230 -O
f2.png");
?>
總之現在就是暫存檔也好
強制抓下來也好
希望能夠「抓到他」並取得檔名 (/‵Д′)/~ ╧╧
唉~這部分真的不懂~上網查了很多資料亂拼出來還是不行
希望高手們再給些教學~謝謝!
※ 編輯: teaRsis 來自: 140.116.134.139 (10/19 18:36)
→ kylekai:寫一個 function getRemoteImageToTime(){} 回傳暫存位置. 10/19 18:25
→ kylekai:不就可以了嗎?... 帶入的參數就用遠端網址... 10/19 18:25
→ kylekai:回傳就是暫存檔案的檔名位置, 這樣直接塞給fpdf就好了. 10/19 18:26
→ kylekai:getRemoteImageToTemp(); 上面手誤. 10/19 18:27
→ LewisHamiltn:你把取得的資料file_put_contents 檔名你自己取 10/19 18:37
→ LewisHamiltn:不就好了= =注意路徑和權限就是了 10/19 18:37
→ LewisHamiltn:php manual多看 尤其是下面的註解和討論...gl 10/19 18:37
→ jaceju:move_uploaded_file 這個函式應該是你想要的 10/19 18:40
→ kylekai:不加上錯誤控制,不用超過10行.... 10/19 18:53
→ jaceju:誤會了,我以為是上傳檔案...應該是用 file_put_contents 10/19 18:53
→ ming220:網路上抄半天不如上php.net看手冊來得有用 10/19 18:55
參照 kylekai 的教學
寫了下述程式碼:
$url =
"http://chart.apis.google.com/chart?cht=gom&chd=t:100&chl=0&chs=340x230";
$fp = file_get_contents($url);
$tmp = tempnam('/tmp/','pic');
file_put_contents($tmp,$fp);
$img = $tmp.".png";
有順利存到tmp中-----> /tmp/picXxEzN1
然後放到FPDF中
$pdf->Image($img,4.5,4,19.5,0,'png');
網頁卻顯示錯誤訊息
Warning: fopen(/tmp/picXxEzN1.png) [function.fopen]: failed to open stream:
No such file or directory in
/home/admin/public_html/project/test/fpdi134/fpdf.php on line 1440
FPDF error: Can't open image file: /tmp/picXxEzN1.png
資料庫是這樣...
/tmp/picXxEzN1
/home/admin/project/test/printpdf.php
請問要如何取出「完整的」tmp 路徑來使用呢? (目前研究 sys_get_temp_dir 中...)
※ 編輯: teaRsis 來自: 140.116.42.196 (10/20 23:27)
→ ming220:存到/tmp的圖檔沒給副檔名,fopen當然抓不到picXXX.png囉 10/20 23:49
→ kylekai:沒事幹麼給他多加上那個附檔名?. fpdf沒附檔名不知道是什? 10/21 13:10
→ LewisHamiltn:....多作多錯 少作少錯 先知道自己要作什麼再作吧 10/21 14:24
總算是完成了
原來是tmpnam指定路徑錯誤所以才存不進去想要的路徑
$url="http://chart.apis.google.com/chart?cht=gom&chd=t:10&chl=240&chs=340x230";
$fp = file_get_contents($url);
$tmp1 = tempnam('/home/admin/public_html/project/sfs30/tmp1/','pic');
file_put_contents($tmp1,$fp);
$tt = substr($tmp1,-9); //取出網頁中圖片檔案的字串
$pic11 = "/tmp1/".$tt;
至於副檔名
$pdf->Image($pic11,140,25,60,40,'png'); //在這邊指定即可
謝謝以上幫忙的各位大大
自己有很多不瞭解部分謝謝指導
我以後會多研究manual的 ( ̄▽ ̄#)﹏﹏
有協助的各位每人200p (稅前)
ming220
kylekai
LewisHamiltn
謝謝!!!
※ 編輯: teaRsis 來自: 140.116.42.196 (10/21 15:22)
※ 編輯: teaRsis 來自: 140.116.42.196 (10/21 15:24)