通过php下载远程图像(安全)

时间:2012-05-12 22:02:10

标签: php jquery

PHP:

我能找到类似于stackoverflow使用的脚本的任何想法吗?或者自己制作类似的东西会很容易吗?我确定下载图像不是问题,但我更担心安全性。我正在构建用户头像上传/远程上传系统。

Jquery的:

我将jquery添加到标签的原因,也许可以让用户指向图像的URL并以某种方式通过正常的文件上传输入自己上传(无需先将图像手动下载到计算机)

1 个答案:

答案 0 :(得分:2)

出于安全考虑,您可以使用cURL下载图片,然后使用getimagesize()检查它是否真的是图片。

<?php
$limit = 1024*1024*10 // Max. file size in bytes (1024*1024*10 = 10MB)
$ch = curl_init();

$fh = fopen('image.jpg', 'w'); 

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_RANGE, '0-' . $limit);

curl_exec($ch);

curl_close($ch);

if ($image = getimagesize ("image.jpg")) { 
     // It's an image
}
else { 
     // Not an image; delete!
}