Я загружаю несколько файлов в динамический каталог, но показываю ошибку.
Warning: move_uploaded_file(1/1533889764_Koala.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\peacock\contact.php on line 48
Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php853E.tmp' to '1/1533889764_Koala.jpg' in C:\xampp\htdocs\peacock\contact.php on line 48
мой html-код:
<form method = "post" action = "" enctype = "multipart/form-data">
Attach Files : <input type = "file" name = "cnt_img[]" multiple = "multiple"><br>
<input type = "submit" name = "submit" value = "Submit">
</form>
php код:
if (isset($_REQUEST['submit'])) {
$insert_id = mysqli_insert_id($conn);
if ($_FILES['cnt_img']['name']!='')
$filefolder = mkdir($insert_id , 0777, true);
{
if (count($_FILES['cnt_img']['name']) > 0)
{
for($i=0; $i<count($_FILES['cnt_img']['name']); $i++)
{
$tmpFilePath = $_FILES['cnt_img']['tmp_name'][$i];
if ($tmpFilePath != "")
{
$shortname = $_FILES['cnt_img']['name'][$i];
$filePath = $filefolder."/".time().'_'.$_FILES['cnt_img']['name'][$i];
if (move_uploaded_file($tmpFilePath, $filePath))
{
$files[] = $shortname;
}
}
}
}
}
}
$insert_id = mysqli_insert_id($conn);
Что делает эта линия? Я не вижу предыдущего INSERT SQL
Эта строчка ?? $filefolder = mkdir($insert_id , 0777, true);
появляется после IF, но до открытия {
???
Было бы неплохо сделать разумный отступ в коде. Это помогает нам читать код и, что более важно, помогает вы отлаживаете свой кодВзгляните на стандарт кодирования для вашей же выгоды. Вас могут попросить изменить этот код через несколько недель / месяцев, и в конце вы будете благодарить меня.
ошибка не отображается, но файлы не загружаются
Отображаются ошибки. Вы показали их нам
Начните с перемещения этой строки $filefolder = mkdir($insert_id , 0777, true);
внутри блока if, т.е. после {
, а не до
кто-нибудь может мне помочь
@RiggsFolly да, сэр, я исправил, но ошибка все еще отображается
@RiggsFolly $ ins = $ conn-> prepare ("вставить в контакты (имя, электронная почта, телефон, комментарии) значения (?,?,?,?)"); $ ins-> bind_param ("ssss", $ name, $ email, $ phone, $ question); $ ins-> выполнить (); $ insert_id = mysqli_insert_id ($ conn);
if ($_FILES['cnt_img']['name']!='')
{
mkdir('contactus/'.$insert_id , 0777, true);
if (count($_FILES['cnt_img']['name']) > 0)
{
for($i=0; $i<count($_FILES['cnt_img']['name']); $i++)
{
$tmpFilePath = $_FILES['cnt_img']['tmp_name'][$i];
if ($tmpFilePath != "")
{
$shortname = $_FILES['cnt_img']['name'][$i];
$filePath = "contactus/".$insert_id."/".time().'_'.$_FILES['cnt_img']['name'][$i];
if (move_uploaded_file($tmpFilePath, $filePath))
{
$files[] = $shortname;
}
}
}
}
}
попробуйте удалить
[]
послеcnt_img
в HTML