Я пытаюсь создать форму для загрузки изображения в папку в корневом каталоге домена «/ uploads» и информации в базу данных (это делается после решения этой проблемы).Но каждый раз, когда я пытаюсь отправить данные, загружаемый PHP печатает это:
Существуют файлы Array ()
Примечание: неопределенный индекс: profileUpload в [директории моего компьютера для хоста] /data / db-updates / addAccount.php в строке 29
Примечание: неопределенный индекс: profileUpload в [каталог моего компьютера для размещения] /data/db-updates/addAccount.php в строке 30
Примечание: неопределенный индекс: profileUpload в [каталог моего компьютера на хост] /data/db-updates/addAccount.php в строке 31
Извините, ваш файл не был загружен
IВ настоящее время разрабатываю веб-сайт, который содержит эту страницу на 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: добавлены имена для входов]