Я хочу, чтобы загрузить файл (PDF) с помощью PHP,не может загрузить файл в формате PDF с помощью PHP
Я нашел код в Интернете, и я просто добавить тип моих файлов: применение/PDF но он не работал для файла pdf. (он отлично работает для изображений).
HTML код
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
код PHP
$allowedExts = array("gif", "pdf", "GIF", "jpeg", "JPEG", "jpg", "JPG", "png", "PNG");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "application/pdf")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 90000000000) // increased allowed size may be your problem
&& 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("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
ошибка
Invalid file
*
Update
*
после добавления var_dump($_FILES['file']);
в начале моего скрипта
На хромом (работает отлично) выход:
array
'name' => string 'Nouveau Document Microsoft Office Word.pdf' (length=42)
'type' => string 'application/pdf' (length=15)
'tmp_name' => string 'C:\wamp\tmp\php58AD.tmp' (length=23)
'error' => int 0
'size' => int 79770
Upload: Nouveau Document Microsoft Office Word.pdf
Type: application/pdf
Size: 77.900390625 kB
Temp file: C:\wamp\tmp\php58AD.tmp
на firfox он не работал, выход
array
'name' => string 'Nouveau Document Microsoft Office Word.pdf' (length=42)
'type' => string 'application/force-download' (length=26)
'tmp_name' => string 'C:\wamp\tmp\phpBEFD.tmp' (length=23)
'error' => int 0
'size' => int 79770
string 'application/force-download' (length=26)
Update2
* Код wirthout $ _FILES [ "Файл"] [ "типа"] *
var_dump($_FILES["file"]["type"]);
$allowedExts = array("gif","pdf", "GIF");
$extension = end(explode(".", $_FILES["file"]["name"]));
in_array($extension, $allowedExts);
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>";
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
он работал отлично для всех моих браузерах, но я должен проверьте тип и размер файлов! и в чем проблема?
Попробуйте добавить var_dump ($ _ FILES ["file"] ["type"]); сразу после недействительного эха файла. – blue112
Вы делаете поиск с учетом регистра (не очень хорошая идея ...), и вы не добавляли 'PDF' в разрешенный массив расширений. У вашего тестового файла есть расширение в нижнем регистре? – jeroen
@jeroen да мой тестовый файл имеет расширение в нижнем регистре – Sonya