繁体   English   中英

如何在PHP中验证通过URL上传的文件

[英]How to validate files uploaded by URL in PHP

在系统中移动/上传之前如何验证文件。

我通常知道如何验证文件上传,但是我正在寻找一种有关验证通过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框架。

使用cURL检查文件的mime类型。 http://php.net/manual/zh/function.curl-getinfo.php

在实际下载文件内容之前,可以使用get-headers()获取信息,例如内容类型和文件大小。

要验证文件是否确实如它所说的那样,例如,检查.pdf文件是否实际上是变相的.zip文件,现在情况完全不同了,恐怕没有一种通用的方法可以检查该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM