Ошибка загрузки в файл DOCX, но в состоянии загрузить PDF в том же коде - PullRequest
0 голосов
/ 28 сентября 2018

Я пытался загрузить файл формата docx и xlsx не перемещая файл в папку, в которой возникла ошибка.здесь код для загрузки

/*     Upload Pdf  */
    if(isset($_FILES["file"]) && $_FILES["file"]["error"] == 0){
    $allowed = array('pdf' => "application/pdf",'doc' => "application/msword",'docx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
    $filename = $_FILES["file"]["name"];
    $filetype = $_FILES["file"]["type"];
    $filesize = $_FILES["file"]["size"];

    // Verify file extension
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    if(!array_key_exists($ext, $allowed)) die("Error: Please select a valid file format.");

    // Verify file size - 5MB maximum
    $maxsize = 5 * 1024 * 1024;
    if($filesize > $maxsize) die("Error: File size is larger than 5MB the allowed limit.");

    // Verify MYME type of the file
    if(in_array($filetype, $allowed)){
        // Check whether file exists before uploading it
        if(file_exists("../../upload/courses/pdf/" . $_FILES["file"]["name"])){
            unlink("../../upload/courses/pdf/" . $_FILES["file"]["name"]);

            $tmph = $_FILES["file"]["tmp_name"];
            $pathh = "../../upload/courses/pdf/" . $_FILES["file"]["name"];

            move_uploaded_file($tmph,$pathh );
        } else{
            $tmph = $_FILES["file"]["tmp_name"];
            $pathh = "../../upload/courses/pdf/" . $_FILES["file"]["name"];

            move_uploaded_file($tmph,$pathh );
            //echo "Your file was uploaded successfully.";

        } 
    } else{   echo "Error: There was a problem uploading your file. Please try again.";        }




} 
        $filepath =substr("../../upload/courses/pdf/" . $_FILES["file"]["name"],3);

       if($_FILES["file"]["size"] == 0 && $_FILES["file"]["error"] == 4){

        $file ='';
        }
        else{
            $file = ",file='".$filepath."'";
        }

Ошибка в ссылке move_uploaded_file () part

Используя тот же код файла, я могу загрузить файл PDF, но вызвать ошибку в DOCXи формат файла xlsx.

1 Ответ

0 голосов
/ 28 сентября 2018

В приведенной выше части я проверил MIME с типом файла печати, он получил мне mimetype файла, который мне нужно использовать.Поэтому я изменил

$allowed = array('pdf' => "application/pdf",'doc' => "application/msword",'docx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document');

на

$allowed = array('pdf' => "application/pdf",'doc' => "application/msword",'docx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document','docx'=>'application/octet-stream');

В моем случае это сработало с этим совпадением 'docx'=>'application/octet-stream', в случае ошибки означает, что попробуйте проверить $_FILES["file"]["type"]; с помощью эха или распечатать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...