通过PHP无法上传.xml文件
问题描述:
我想创建一个表单,用户可以将XML文件上传到我的服务器,它将覆盖已存在的服务器。我正在使用下面的代码(如果它已经存在,我知道它不会上传文件,但是一旦我解决了这个问题,我会解决这个问题)。通过PHP无法上传.xml文件
的问题是,第一if语句本声明
($_FILES["file"]["type"] == "application/xml")
这意味着我得到一个无效的文件信息失败。如果我评论说,文件上传。
更改允许其他类型(如JPG)的文件类型的作品。
<?php
$allowedExts = array("xml");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "application/xml"))
&& ($_FILES["file"]["size"] < 5000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("xml/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"xml/" . $_FILES["file"]["name"]);
echo "Stored in: " . "xml/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
我对PHP很陌生,所以要温柔一些,我找过类似的问题,但没有找到任何似乎解决这个问题的东西。
谢谢。
答
从PHP网站:
$ _FILES [ 'userfile的'] [ '型']
The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.
“如果浏览器提供此信息的。”一些浏览器不发送类型。您需要通过扩展或解析XML来验证。
选中此项。
答
得到它与
($_FILES["file"]["type"] == "text/xml")
+0
你必须在这里解释你在做什么。答案不是一行代码......'app .../xml'和'text/xml'之间有什么区别?提供参考。 – 2015-02-19 00:44:31
工作查看哪些值你所得到的'$ _FILES'变量通过使用'print_r',然后用比较你的'如果condition'其是否匹配与否。 – Sid 2013-05-06 11:42:59
谢谢,使用print_r显示它显示为xml。已经改变了代码来检查整个文件名称与我想要的一样,并且工作。我知道的不是非常安全,但是对于我正在执行的内容来说,这很好。再次感谢。 – user2354318 2013-05-06 16:31:19