我使用以下代码供用户上传图片。
if ((($_FILES["companylogofile"]["type"] == "image/jpeg")
|| ($_FILES["companylogofile"]["type"] == "image/pjpeg"))
&& ($_FILES["companylogofile"]["size"] < 75000))
{
if ($_FILES["companylogofile"]["error"] > 0)
{
echo "Return Code: " . $_FILES["companylogofile"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["companylogofile"]["name"] . "<br />";
echo "Type: " . $_FILES["companylogofile"]["type"] . "<br />";
echo "Size: " . ($_FILES["companylogofile"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["companylogofile"]["tmp_name"] . "<br />";
if (file_exists("Template/" . $_FILES["companylogofile"]["name"]))
{
echo $_FILES["companylogofile"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["companylogofile"]["tmp_name"],
"Template/" . $_FILES["companylogofile"]["name"]);
}
}
}
else
{
echo "Invalid file";
}
正如您所看到的,我只接受上传时带有大小限制的.jpeg文件。我还需要做的是对他们上传的文件的名称添加限制。基本上我想只允许文件上传,如果它们被命名为:Logo。有没有办法限制正在上传的文件的名称?
谢谢!
答案 0 :(得分:1)
if (!preg_match("/logo/i", $_FILES["companylogofile"]["name"])) die("File have to contain 'logo' in name");
如果您正在寻找“Logo.jpg”,那么可以通过
实现if ("Logo.jpg" != $_FILES["companylogofile"]["name"]) die("File have to contain 'logo' in name");
答案 1 :(得分:0)
是的,肯定有一种方法可以限制字符串格式。我建议你使用preg_match http://php.net/manual/en/function.preg-match.php
来研究通过PHP使用PERL正则表达式如果之前没有使用过正则表达式,它们只是一种通过压缩语法测试字符串格式的方法。可以在此处找到开始使用正则表达式的好地方:http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/
答案 2 :(得分:0)
什么构成'坏'文件“Logo3?logo-with-some-long-rambling-filename?
function isValidFileName($filename) {
... what do you want here?
}
if (!isValidFileName($_FILES['companylogoimage']['name'])) {
die("Ooops, bad filename");
}
仅供参考:不要使用$ _FILES数组中的['type']
值进行验证。这是用户提供的文件的mime类型 - 它可以很容易地改为骗你。使用类似getimagesize()
的内容使服务器确定图像的类型。
答案 3 :(得分:0)
是的,只需测试$_FILES['companylogofile']['name']
。例如:
if (false === strpos(strtolower($_FILES['companylogofile']['name']), 'logo')) {
echo 'Error!';
unlink($_FILES['companylogofile']['tmp_name'];
return;
}
但是,为什么你要对上传施加如此恼人的限制?我希望你不认为它会让它变得安全或什么东西?