Проблемы с загрузкой файлов PDF с использованием PHP - PullRequest
2 голосов
/ 15 февраля 2012

У меня возникла странная проблема с моим скриптом, который я тестирую для загрузки файлов PDF. Я могу успешно загрузить некоторые PDF-файлы, но не другие файлы, даже если они все PDF-файлы и имеют расширение .pdf. Может ли кто-нибудь пролить свет на это после того, как мой код

HTML PART:

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">                            
    <input type="file"  name="upload" /><br />        
    <input type="submit" name="submit">  

PHP PART:

  if(isset($_POST['submit'])){
                $output_form = 0;                

                if (($_FILES["upload"]["type"] == "application/pdf")
                    && ($_FILES["upload"]["size"] < 80000)){
                        if (file_exists("upload/" . $_FILES["upload"]["name"]))
                          {
                            echo $_FILES["upload"]["name"] . " already exists. ";
                          }
                          else
                          {
                            move_uploaded_file($_FILES["upload"]["tmp_name"],
                            "upload/" . $_FILES["upload"]["name"]);
                            echo "Stored in: " . "upload/" . $_FILES["upload"]["name"];
                          }                          
                    }else{
                        echo 'Invalid File';
                    }                      
            }

Для некоторых файлов я получаю вывод, сохраненный в выводе. Для остальных я получаю сообщение «Неверный файл».

Спасибо

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Ваш код выше, кажется, имеет условие, что если размер файла больше, чем 80000, то он должен выдать ошибку «Неверный файл»?Какого размера те, которые терпят неудачу?Я был бы готов поспорить, если вы прокомментируете это условие, оно будет работать

0 голосов
/ 08 мая 2013

Были те же проблемы. Обнаружил, что тип файла также может быть application / x-octet-stream Таким образом, вы должны проверить это в том же заявлении, что вы проверяете размер файла. Что-то вроде этого: if (($ _FILES ['pdfUpload'] ['type'] == "application / pdf") || ($ _FILES ['pdfUpload'] ['type'] == "application / x-octet-stream") && ($ _FILES ['pdfUpload'] ['size'] <9000000)) // Намного больше, и мы получаем тайм-аут во время передачи </p>

Мои 2 цента стоят

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