PHP $ _FILES массив поврежден, когда пустой содержит недопустимые символы - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть много форм, содержащихся в CMS, которую я создал.Они все работали нормально до сегодняшнего дня.У меня проблема связана с загружаемыми файлами и массивом $_FILES, содержащим нечетные символы.

Содержится в форме, которую я имею:

<tr>
    <td>Related PDF File:</td>
    <td><input type="file" name="pdfFile" size=50" value="<? pv($frm["pdfFile"]) ?>"></td>
</tr>

При отправке возвращается к моему сценарию, и я проверяю, есть ли у поля файл, отправленный:

if($_FILES['pdfFile']['name'] != '' && $_FILES['pdfFile']['error'] == 0) {
    $up_file->save($CFG->dirroot . "/docs/services/", "pdfFile", 1);
    $frm['pdfFile'] = $up_file->getFilename('pdfFile');
}

Проблема в том, что если я отображаю свой массив $ _FILES, когда в поле ничего не отправлено, я получаю следующее:

Array
(
    [pdfFile] => Array
        (
            [name] => ò…
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )
)

В [name] есть несколько прикольных специальных символов.Кто-нибудь когда-нибудь видел это?Это происходит только на одном из моих серверов.И если поле ввода на самом деле имеет отправленный файл, это не проблема.

Заранее благодарим за любые комментарии.

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Разобрался, в чем проблема.PHP недавно был обновлен нашим хостинг-провайдером до версии 5.3.8.В этом выпуске есть ошибка, которая удаляет первый символ в загруженном файле.Вы можете увидеть ошибку здесь: $ _ FILES 'name' отсутствует первый символ после загрузки.

По какой-то причине magic_quotes_gpc был включен после обновления.Выключил, и теперь все хорошо.

Спасибо за ваши комментарии.

0 голосов
/ 17 ноября 2011
[error] => 4

Использование документации :

UPLOAD_ERR_NO_FILE

    Value: 4; No file was uploaded.

Убедитесь, что в вашем теге <form> есть атрибут enctype="multipart/form-data".

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