Ошибка при настройке формы для загрузки PDF-файлов - PullRequest
0 голосов
/ 06 октября 2011

Я настраиваю форму для загрузки PDF-файлов и не могу понять причину моей проблемы.

У меня есть форма на одной странице.

    <form enctype="multipart/form-data" action="step3.php" method="post">
          <label>Select Any PDF's For This Product <br /><span style="font-size:12px; margin-left: 4px;">(Must be pdf format. Max file size 60MB)</span></label><br /><br />
          <input type="hidden" name="MAX_FILE_SIZE" value="60000" />
          <input name="uploadedpdf1" type="file" /><br />
          <input name="uploadedpdf2" type="file" /><br />
          <input name="uploadedpdf3" type="file" /><br />
          <input name="uploadedpdf4" type="file" /><br />
          <input name="uploadedpdf5" type="file" /><br /><br>
          <input type="submit" name="submit" value="Next Step" />
        </form>

Затем на следующей странице я использую длинный PHP-скрипт для загрузки и проверки файлов. Моя проблема начинается с самого начала сценария, поэтому я опубликую очень упрощенную версию.

for ($i = 1; $i < 6; ++$i) {    
$file = "uploadedpdf{$i}";

if($_FILES[$file]["name"]!="") {

$fileName = $_FILES[$file]["name"]; 
$fileTmpLoc = $_FILES[$file]["tmp_name"]; 
$fileType = $_FILES[$file]["type"]; 
$fileSize = $_FILES[$file]["size"]; 
$fileErrorMsg = $_FILES[$file]["error"]; 
}}

На данный момент я просто получаю информацию о загруженном файле, чтобы посмотреть, можно ли его загрузить.

Я не получаю никакого значения для $ _FILES [$ file] ["tmp_name"] или $ _FILES [$ file] ["type"].

$ _ FILES [$ file] ["size"] = 0

$ _ FILES [$ file] ["error"] = 2

Но $ _FILES [$ file] ["name"] работает нормально.

Почему мой файл не имеет размера и как я могу отладить 2 ошибки?

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Файл слишком большой. Согласно номеру ошибки (вы можете увидеть список в руководстве ):

UPLOAD_ERR_FORM_SIZE

Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive

, который был указан в форме HTML.

Ваш

 <input type="hidden" name="MAX_FILE_SIZE" value="60000" />

Изменить после комментария:

размер указан в байтах, поэтому 60 МБ = 61 440 000. Кроме того, будьте осторожны с настройками php INI, которые допускают такой размер (директива * upload_max_filesize *), и чтобы он не превышал ваш лимит времени.

1 голос
/ 06 октября 2011

Перед доступом к информации в $_FILES необходимо проверить error запись .В вашем случае ошибка 2 означает, что размер загруженного файла больше, чем числовое значение поля POST MAX_FILE_SIZE, обычно устанавливаемое со скрытым полем ввода.Убедитесь, что в этом поле ввода указан правильный value, или удалите его.

...