Я пытаюсь загрузить файлы на свой сервер, разрешенное расширение должно быть pdf, doc, docx - это мой код.
$uploadCv = $_FILES['uploadCv']['name'];
$target = "includes/employeeCv/";
$target = $target . basename($_FILES['uploadCv']['name']);
if ($_FILES['uploadCv']['size'] == 0) {
$error['uploadCvErr'] = "<span class='notAllowed'>Please upload your c.v</span>";
} elseif
(
$_FILES['uploadCv']['type'] != 'application/pdf'
&& $_FILES['uploadCv']['type'] != 'application/msword'
&& $_FILES['uploadCv']['type'] != 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
) {
$error['uploadCvErr'] = 'Unsupported file type uploaded.';
} elseif ($_FILES['uploadCv']['size'] > 5000000) {
$error['uploadCvErr'] = 'File uploaded exceeds maximum upload size.';
}
все идет хорошо с PDF и doc, но на docx говорится, что Unsupported file type uploaded.
что я делаю неправильно здесь.
Редактировать Я добавил это в мои контрольные файлы && $_FILES['uploadCv']['type'] != 'application/zip'
все еще не работает.
Файлы OfficeOpenXML .docx
часто имеют тип application/zip
mime, потому что они представляют собой zipped-коллекцию XML файлов, а браузеры слишком ленивы, чтобы проверять вне zip-подпись при установке типа mime
application/zip
также ... если вы хотите быть более строгим, то вы можете открыть ziparchive и проверить наличие определенных файлов внутри zip-архива.
type
файла, это не то, что вы думаете, это