2013-04-15 44 views
0

我有一個PHP捲曲腳本從指定的網址下載圖像。執行從瀏覽器加載捲曲圖像下載

Save image from url with curl PHP

function grabImage($url, $saveto){ 
    $ch = curl_init ($url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
    $raw=curl_exec($ch); 
    curl_close ($ch); 
    if(file_exists($saveto)){ 
     unlink($saveto); 
    } 
    $fp = fopen($saveto,'x'); 
    fwrite($fp, $raw); 
    fclose($fp); 
} 

grabImage("www.example.com/image/2.png", "/var/www/site/images/image_2.png") 

當一個人訪問我的網站,如果圖像是不可用的,將使用curl從我的供應商的服務器上下載它從我的服務器的圖像但是下載,我寧願所有的圖片都下載從我的服務器直接,因爲我不想給我的供應商服務器上任何壓力。

該腳本在ssh中運行時工作正常, /usr/bin/php /var/www/site/image_s.php,但是當它在瀏覽器中加載時,它不會下載圖像。 例如www.example.com/image_s.php

我需要做些什麼來確保瀏覽器負載足以下載圖像?

+0

是否打印任何錯誤或警告更改權限? – martin

+0

@Martin沒有錯誤已打印出來,當我看我的日誌文件時,我也看到沒有錯誤 –

回答

0

我在網上做了一些更多的搜索,結果你需要更改文件夾權限,默認情況下公衆可以不寫入文件夾。

在Linux中,你可以通過執行以下操作

chmod 666 /var/www/site/folder_name

+0

帶'666'的文件夾?你的意思是'777'或'775',對吧? – Raptor

+0

對不起,我的意思是777,但我擔心安全問題 –

+0

這就是爲什麼我加了'775',這是一個更安全的選擇。 – Raptor

0

看起來像一個Web服務器權限錯誤,當您在控制檯上運行它時,您正在以您登錄的用戶身份運行。這與爲網站內容提供服務的用戶不一樣(它可能是'沒有人')

+0

是的,我依賴於這就是爲什麼我添加了權限標記,但是我已經給它提供了所有讀,寫和執行權限沒有運氣 –

+1

你需要檢查你添加的權限是否爲正確的用戶 –