Как обойти скрипт загрузки файла, когда файл не загружен - PullRequest
0 голосов
/ 23 октября 2019

У меня есть форма, которая отправляет текстовые вводы и иногда файлы. У меня проблема с ситуациями, когда файлы не загружаются. В настоящее время, если файл не включен в отправку формы, я получаю следующую ошибку:

Примечание PHP: неопределенный индекс: uploadedFile

Ошибка напрямую связана сэта строка кода:

$file_count = count($_FILES['uploadedFile']['name']);

Я знаю, что говорит ошибка. Мой вопрос заключается в том, могу ли я заранее определить количество файлов на 0, если файл не загружен в javascript, который можно перевести на PHP. Или есть способ проверить, установлен ли он перед запуском $file_count?

Однако в сценарии встречается больше случаев. Буду ли я ставить оператор if сразу после объявления функции?

public function upload() {

    $file_count = count($_FILES['uploadedFile']['name']);
    $results = [];
    for ($i = 0; $i<$file_count; $i++) {
        //echo $file['uploadedFile']['name'][$index] . "\n";

        $target_dir = "uploads/";
        $target_file = $target_dir . basename($_FILES["uploadedFile"]["name"][$i]);
        $uploadOk = 1;
        $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));        

        // Check if $uploadOk is set to 0 by an error
        if ($uploadOk == 0) {
            return 0;
            // if everything is ok, try to upload file
        } else {
            if (move_uploaded_file($_FILES["uploadedFile"]["tmp_name"][$i], $target_file)) {
                $results[] = basename($_FILES["uploadedFile"]["name"][$i]);
            } else {
                return 0;
            }
        }
    }
    return $results;

1 Ответ

1 голос
/ 23 октября 2019

Вы можете проверить, есть ли вложение файла, используя empty

if (!empty($_FILES["uploadedFile"]["name"])) {

empty не генерирует уведомление или предупреждение, если ничего не находит, например isset или count

...