2013-09-15 6 views
2

Я изо всех сил, чтобы сделать этот код загрузки работы для файла DOCX, она работает хорошо для док и PDF ..PHP Загрузить форму, PDF, Doc и Docx

$allowedExts = array("pdf", "doc", "docx"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "application/pdf") 
|| ($_FILES["file"]["type"] == "application/msword")) 
&& ($_FILES["file"]["size"] < 20000000) 
&& in_array($extension, $allowedExts)) 
{ 
    if ($_FILES["file"]["error"] > 0) 
{ 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
} 

это является частью проекта из Некоторое время назад я честно не помню, как это сделать.

Я знаю, что это не самый безопасный способ загрузки, но если кто-то может помочь, это будет оценено!

Я думаю, мне нужно добавить еще одну строку здесь:

if ((($_FILES["file"]["type"] == "application/pdf") 
|| ($_FILES["file"]["type"] == "application/msword")) 
&& ($_FILES["file"]["size"] < 20000000) 

Просто не уверен, что .. Помощь ценится!

Edit: Так я получил на этом этапе (с помощью комментариев!)

$allowedExts = array("pdf", "doc", "docx"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
//if ((($_FILES["file"]["type"] == "application/pdf") 
//|| ($_FILES["file"]["type"] == "application/msword")) 
if (($_FILES["file"]["type"] == "application/pdf") 
|| ($_FILES["file"]["type"] == "application/msword") 
|| ($_FILES["file"]["type"] == "application/vnd.openxmlformats- officedocument.wordprocessingml.document")) 
&& ($_FILES["file"]["size"] < 20000000) 

&& in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 

Но теперь его придумывают: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_BOOLEAN_AND в/вар/сайтов /s/stanation.com/public_html/forms/process/insert.php на линии 30

ответ

8

Для docx проверки этого MIME типа

application/vnd.openxmlformats-officedocument.wordprocessingml.document 

EDIT:

Вот код. Вы упускаете скобку

<?php 

    $allowedExts = array("pdf", "doc", "docx"); 
    $extension = end(explode(".", $_FILES["file"]["name"])); 
    if (($_FILES["file"]["type"] == "application/pdf") || ($_FILES["file"]["type"] == "application/msword") || ($_FILES["file"]["type"] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") && ($_FILES["file"]["size"] < 20000000) && in_array($extension, $allowedExts)) 
    { 
     if ($_FILES["file"]["error"] > 0) 
     { 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
     } 
     else 
     { 
     echo "Success"; 
     } 
    } 
+0

Да я нашел некоторые подробности о том, что я просто не могу понять, как добавить его в допустимые типы? Есть идеи? Прошло много времени с тех пор, как я сделал php, поэтому я очень ржавый! –

+0

@AliClarke Попробуйте добавить '|| ($ _FILES ["file"] ["type"] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document")) 'ниже' || ($ _FILES ["file"] ["type"] == "application/msword")) ' –

+0

@ShankarDamodaran Похоже, мы оба вставили в одно и то же время. LOL –

0

Это следующая проверка поможет вам загрузить .docx файлы:

$_FILES["txtFile"]["type"] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" 
Смежные вопросы