所以,我想安全地从URL下载图像。我的第一个想法当然是检查扩展 - 如果它是兼容的,只需下载并保存好扩展(它应该是安全的,因为服务器不会运行存储在.jpg
文件中的PHP代码(好吧,除非它被配置为这样做))。使用这种方法还有一些风险,如果有更好的方法吗?
答案 0 :(得分:0)
/* gets the data from a URL */
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
获取可以使用curl_getinfo()
的文件信息
更多信息here
这应该可以帮助你通过url下载任何东西。 关于上传?你想在某处保存文件或什么?
答案 1 :(得分:0)
您应该检查它是否是图像,因为可以操纵扩展名。
$file = file_get_contents($url);
if(@imagecreatefromstring($file)) {
// it's a valid image file; handle it
}
else {
// it's not an image file; error!
}