У меня есть два разных поля в моей форме, чтобы собирать изображение у пользователя и хранить его в двух разных ячейках в таблице MySQL. Следующая программа дает мне эту ошибку. Обратите внимание, что мой счет [$ images] показывает мне результат = 1
036fb3018f.jpg
Примечание: Неопределенное смещение: 1 в строке 43
<input type="file" id="topImg" name="topImg">
<input type="file" id="exampleInputFile" name="featuredImg">
$images = [];
foreach(['featuredImg','topImg'] AS $field){
$permitted = array('jpg', 'jpeg', 'png', 'gif');
$file_name = $file[$field]['name'];
$file_size = $file[$field]['size'];
$file_temp = $file[$field]['tmp_name'];
$div = explode('.', $file_name);
$file_ext = strtolower(end($div));
$unique_image = substr(md5(time()), 0, 10).'.'.$file_ext;
$images[] = $unique_image;
echo $images[0];
echo $images[1]; // Line 43
$images[] = "../images/uploads/".$unique_image;
}
Вы должны переместить свое эхо вне цикла for. Когда он идет для первой итерации, индекс 1 не будет найден.
Также вы назначили два значения для вашего массива для каждого цикла.
<input type="file" id="topImg" name="topImg">
<input type="file" id="exampleInputFile" name="featuredImg">
$images = [];
foreach(['featuredImg','topImg'] AS $field){
$permitted = array('jpg', 'jpeg', 'png', 'gif');
$file_name = $file[$field]['name'];
$file_size = $file[$field]['size'];
$file_temp = $file[$field]['tmp_name'];
$div = explode('.', $file_name);
$file_ext = strtolower(end($div));
$unique_image = substr(md5(time()), 0, 10).'.'.$file_ext;
$images[] = "../images/uploads/".$unique_image;
}
echo $images[0];
echo $images[1];