Laravel基本上具有input
类型file
的以下功能。
// Determine if a file was uploaded
Input::hasFile('filename');
// Access file properties
Input::file('name')->getRealPath();
Input::file('name')->getClientOriginalName();
Input::file('name')->getClientOriginalExtension();
Input::file('name')->getSize();
Input::file('name')->getMimeType();
如果我使用getClientOriginalExtension
找到正确的图片扩展名,getSize
可以限制文件上传大小& getMimeType
检查图像的mimetype。
我安全吗?并且可以对功能有信心,它不会被黑客以任何方式利用。
考虑到一个事实,我将只上传图片。
http://php.w3clan.com/tutorial/47/form-handling-secure-uploading
$rule = [ 'name' => 'image' ];
答案 0 :(得分:5)
对我来说似乎很安全。
如果您只打算上传图片,可以这样做:
$rules [
...
'file' => 'required|image' // Assuming it's required, otherwise leave that out
]
如果要进一步限制允许的扩展名,可以指定包含所允许扩展名的阵列,然后针对它检查Input::file('file')->getClientOriginalExtension()
。虽然这可能是欺骗性的,但最好指定允许哪些mime类型。
例如,如果您只想允许.png和.gif文件,请使用:
$allowedMimes = [
'image/gif',
'image/png'
];
然后使用->getMimeType()