如何在PHP

时间:2016-09-30 09:13:01

标签: php file laravel validation file-upload

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

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

2 个答案:

答案 0 :(得分:1)

使用cURL检查文件mime-type。 http://php.net/manual/en/function.curl-getinfo.php

答案 1 :(得分:1)

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

验证文件是否真的与它所说的相同,例如检查.pdf文件实际上是伪装的.zip文件,现在这是一个完全不同的故事,我担心没有通用的方法来检查。