Загрузка изображения PHP -> Неопределенный индекс

Я пытаюсь сделать форму для загрузки изображения в папку в корневом каталоге домена «/uploads» и информацию в базу данных (сделав это после решения этой проблемы). Но каждый раз, когда я пытаюсь отправить данные, загружаемый PHP печатает это:

Array ( ) files exist

Notice: Undefined index: profileUpload in [my pc directory to host]/data/db-updates/addAccount.php on line 29

Notice: Undefined index: profileUpload in [my pc directory to host]/data/db-updates/addAccount.php on line 30

Notice: Undefined index: profileUpload in [my pc directory to host]/data/db-updates/addAccount.php on line 31

Sorry your file was not uploaded

В настоящее время я разрабатываю веб-сайт, содержащий эту страницу, на MAMP (mac).

.htaccess

RewriteEngine on

RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

Header set Access-Control-Allow-Origin "*"

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf

admin-addAccount.php (файл с формой)

<?php
  //ini_set("display_errors","on");
  //error_reporting(E_ALL);

?>
<link rel = "stylesheet" type = "text/css" href = "/data/css/admin-addAccount.css">
<link rel = "stylesheet" media = "screen" href = "https://fontlibrary.org/face/beon" type = "text/css"/>
<section class = "content">
  <div class = "addAccount_holder">
    <div class = "addAccount_holder_title">Adicionar Conta</div>
    <div class = "addAccount_holder_content">
      <form action = "/data/db-updates/addAccount.php" enctype = "multipart/form-data" method = "post">
        <input type = "file" name = "profileUpload" id = "profileUpload" class = "profileUpload" />
        <label for = "profileUpload"><i class = "fas fa-upload"></i> Foto de Perfil</label><br />
        <span>Nome</span><input name = "nome" type = "text" required/><br />
        <span>Email</span><input name = "email" type = "email" required/><br />
        <span>URL</span><input name = "url" type = "text" required/><br />
        <span>Instagram</span><input name = "instagram" type = "text" /><br />
        <span>Facebook</span><input name = "facebook" type = "text" /><br />
        <span>Twitter</span><input name = "twitter" type = "text" /><br />
        <span>Telemóvel</span><input name = "telm" type = "text" /><br />
        <input type = "submit" name = "submit" value = "Registar">
      </form>
    </div>
  </div>
</section>

addAccount.php (файл, который выполняет загрузку и все остальное)

<?php

ini_set("display_errors","on");
error_reporting(E_ALL);

if (TRUE) {
  echo '<pre>';
  print_r($_FILES);
  echo '<pre>';
}

$ok = TRUE;

// Check if there is an uploaded file.
if (!array_key_exists('profileUpload', $_FILES) && !empty($_FILES['profileUpload'])) {
  echo "Sorry, no file seems to be uploaded.";
  $ok = FALSE;
} else {
  echo "files exist";
}

$charactersId = '0123456789abcdefghijklmnopqrstuvwxyz';
$charactersLength = strlen($charactersId);
$userid = '';
for ($i = 0; $i < 8; $i++) { $userid .= $charactersId[rand(0, $charactersLength - 1)]; }

$target = "/uploads/";
$target = $target . 'usrProfile_'.$userid.$_FILES['profileUpload']['type'] ;
$uploaded_type = $_FILES['profileUpload']['type'];
$uploaded_size = $_FILES['profileUpload']['size'];

// This is our size condition.
if ($uploaded_size > 350000) {
  echo "Your file is too large.<br>";
  $ok = FALSE;
}

//This is our limit file type condition
if ($uploaded_type = = "text/php") {
  echo "No PHP files<br>";
  $ok = FALSE;
}

// Here we check that $ok was not set to 0 by an error
if ($ok) {
  echo "Sorry your file was not uploaded";
}
// If everything is ok we try to upload it
else {
  if (move_uploaded_file($_FILES['profileUpload']['tmp_name'], $target)) {
    echo "The file ". basename( $_FILES['profileUpload']['name']). " has been uploaded";
  }
  else {
    echo "Sorry, there was a problem uploading your file.";
  }
}

?>

Я уже искал здесь переполнение стека, и единственным решением, которое я нашел, было включение enctype = "multipart/form-data", но оно у меня уже было, и оно продолжает показывать мне ошибки.

[изменить 1: добавлены имена к входам]

Вашим элементам <input> нужен атрибут name, чтобы вы могли ссылаться на них в php: <input type = "text" name = "somename"/>

user3647971 10.02.2019 16:29

все равно выдает ту же ошибку @user3647971

Desparacebido 10.02.2019 16:31
stackoverflow.com/questions/3586919/… Проверьте это, я уверен, что это ваше решение :) ура
user3647971 10.02.2019 16:37

Я проверил это, и мой php.ini соответствует настройкам в посте, на который вы ссылаетесь, и остальное, как я вижу, также следует всему там... @user3647971

Desparacebido 10.02.2019 16:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нашел решение своей проблемы! Удалено расширение '.php' действия формы.

Сейчас у меня так:

<form action = "/data/db-updates/addAccount" enctype = "multipart/form-data" method = "post">

Другие вопросы по теме