我希望能够上传图片或只是粘贴图片的网址,以便为我的网站用户上传sa个人资料图片。
重点是我不想存储网址,但我希望在我的服务器上有该图像的副本,因为如果外部图像丢失我不想丢失它...
我相信facebook和tumblr等都这样做...... php脚本或最佳实践是做什么的?
谢谢!
答案 0 :(得分:1)
您可以使用PHP函数(http://php.net/manual/en/function.file-get-contents.php)
从图像中获取内容(字节)$contents = file_get_contents('http://www.google.com/images/logos/ps_logo2.png');
您也可以使用CURL库...以下是如何使用下载ImageFromUrl并将其保存在本地SaveLocation中的示例
function downloadImageFromUrl($imageLinkURL, $saveLocationPath) {
$channel = curl_init();
$curl_setopt($channel, CURLOPT_URL, $imageLinkURL);
$curl_setopt($channel, CURLOPT_POST, 0);
$curl_setopt($channel, CURLOPT_RETURNTRANSFER, 1);
$fileBytes = curl_exec($channel);
curl_close($channel);
$fileWritter = fopen($saveLocationPath, 'w');
fwrite($fileWritter, $fileBytes);
fclose($fileWritter);
}
您可以按如下方式使用:
downloadImageFromUrl("http://www.google.com/images/logos/ps_logo2.png", "/tmp/ps_logo2.png")
您也可以通过解析URL获得相同的图像名称......
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用名为imagecreatefromjpeg
的功能。它需要一个指向图像的URL路径,并从中创建一个新图像。看看http://php.net/manual/en/function.imagecreatefromjpeg.php
不同的扩展程序有不同的功能(如果你喜欢使用它)。您可能需要从URL检查图像扩展名并使用我想要的相应功能。
答案 3 :(得分:0)
处理上传的内容为in this documentation,如果用户粘贴了网址,我建议您使用file_get_contents
将图片副本保存到服务器,然后您只需存储路径即可那个图像,而不是外部图像。