2014-09-04 52 views
0

有沒有辦法告訴PHP來處理,例如遠程圖片:http://pic.jpg作爲一個普通的文件正在通過上傳表單上傳並在$_FILES保存爲上傳網絡圖片,因爲它是你的本地計算機上

array (size=5) 
    'name' => string 'pic.jpg' (length=18) 
    'type' => string 'image/jpeg' (length=10) 
    'tmp_name' => string 'C:\Program Files\wamp\tmp\php3018.tmp' (length=37) 
    'error' => int 0 
    'size' => int 879394 

我需要處理遠程圖片作爲本地圖片,所以我可以通過Codeigniters上傳庫運行它,它將調整它的大小並存儲它。

回答

1

獲取文件的內容,把文件的內容(如果需要),並使用該文件路徑..

$pic = file_get_contents('http://pic.jpg'); 
file_put_contents('/path/to/save/pic.jpg',$pic); 

,或者如果你不想保存圖像,然後使用imagecreatefromstring()

$pic = file_get_contents('http://pic.jpg'); 
$image = imagecreatefromstring($pic); 

我相當肯定codeigniters上傳類並沒有做任何圖像處理..

+0

這樣做,可以節省'$配置[ 'new_image']',並設置新的'$配置[ '寬度']',我只是試圖通過網上圖片在'do_upload()'方法 – LazyPeon 2014-09-04 08:20:04

+1

不,上傳之後,保存之前,上傳類中沒有任何內容會更改圖像尺寸...實際上,這沒有。 https://github.com/EllisLab/CodeIgniter/blob/develop/system/libraries/Upload.php – 2014-09-04 08:44:30

+0

對不起,我正在尋找錯誤的方法,在'image_lib' – LazyPeon 2014-09-04 08:54:35

0

,如果你用PHP先下載它使用這個什麼:

copy('http://anything.com/image.jpg', 'yourdrive/folder/anyname.jpg'); 

*您必須allow_url_fopen選項設置爲true

然後你就可以在任何你想要的方式處理它。

+0

「然後你可以用你想要的任何方式處理它。」對,那會是怎樣?我需要通過'do_upload()'方法自動上傳該文件。 – LazyPeon 2014-09-04 08:21:52

+0

然後,您可以通過[ftp](http://php.net/manual/en/function.ftp-put.php)將其上傳。 copy()的目標路徑可以在你的服務器ofc中。這樣你就不需要上傳了。 – Akis 2014-09-04 08:29:02

+0

我要說的是,我需要處理文件,因爲它是通過html格式上傳的,這意味着我需要以正確的格式存儲在$ _FILE函數中的數據,我發佈在我的問題 – LazyPeon 2014-09-04 08:36:36

0
$imageUrl = "http://anything.com/image.jpg"; 
$contents = file_get_contents(trim($imageUrl)); 
file_put_contents('/path/to/save/', $contents); 
相關問題