我知道如何验证文件上传,但我正在寻找有关验证由URL上传的文件的解决方案。
在这里,看看我的代码,它指的是获取文件并将其保存在我的系统中: -
$file_url = 'https://www.something.com/images/Image.png'; // URL of the image/File
$destination_url = '/pictures/pics/image.jpeg';
//我必须假设它是一个图像,然后添加.jpeg 我不知道如何在不上传文件的情况下验证文件。
$data = file_get_contents($file_url); //gets the content of the file.
file_put_contents($destination_url, $data); //finally moves the file to system
现在我可以做所有事情,比如获取它的名称,大小,类型等等,但这不是重点,有没有办法在将文件移动到之前验证文件系统,因为这个程序在安全性方面非常糟糕,考虑到任何人都可以上传任何大小/类型的文件。
在建议任何图书馆之前,请记住我正在使用laravel框架。
答案 0 :(得分:1)
使用cURL检查文件mime-type。 http://php.net/manual/en/function.curl-getinfo.php
答案 1 :(得分:1)
在实际下载文件内容之前,您可以使用get-headers()获取内容类型和文件大小等信息。
验证文件是否真的与它所说的相同,例如检查.pdf文件实际上是伪装的.zip文件,现在这是一个完全不同的故事,我担心没有通用的方法来检查。