[英]Trouble uploading .xml file via PHP
我正在嘗試創建一種表單,用戶可以在其中將xml文件上傳到我的服務器,該文件將覆蓋已經存在的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'] ['type']
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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.