Хорошо, у меня есть какая-то странная проблема с моим кодом. Я пытаюсь сделать загрузку формы с текстом по фотографиям. Теперь мне нужно проверить, загружена ли фотография или только текст вставлен.
Упрощенный код выглядит следующим образом:
if (isset ($_FILES['image'])){ echo 'yes'; } else { echo 'no'; }
форма выглядит так:
<form action="" method="post" enctype="multipart/form-data" class="contact-form"> <form action="" method="post" enctype="multipart/form-data" class="contact-form"> <label for="title"><strong>Title</strong> (required)</label> <input type="text" name="title" value="" required> <label><span class="small"><strong>Add a photo</strong></span></label> <input type="file" name="image"/> <input type="submit" name"submit" value="Submit"> </form>
Теперь, в основном, то, что я пытаюсь сделать, это проверить, прикреплен ли файл или нет, потому что мне нужна альтернативная опция для размещения сообщений без фотографий в той же форме; но проблема заключается в том, что нет, если он прикреплен или нет, он всегда говорит «ДА».
Помогите, кто угодно.
Чтобы проверить, был ли файл загружен, как насчет:
if (!file_exists($_FILES['image']['tmp_name']) || !is_uploaded_file($_FILES['image']['tmp_name'])) { echo 'No upload'; } else { // Your file has been uploaded }
is_uploaded_file()
– это выбор здесь, проверьте документы для него.
$_FILES
– это массив файлов, и каждому файлу в первом измерении массива автоматически присваивается ключ ['tmp_name']
во втором измерении со значением, являющимся его временным расположением.
Очевидно, вам необходимо использовать move_uploaded_file()
во временном файле.
Вы проверяете только то, что $_FILES['image']
передано из вашей формы.
Но вы не проверяете, что размещенное $_FILES['image']
пусто или оно содержит действительные данные файла
Подробнее здесь http://www.php.net/manual/en/features.file-upload.php
<?php if ( isset( $_FILES["image"] ) && !empty( $_FILES["image"]["name"] ) ) { if ( is_uploaded_file( $_FILES["image"]["tmp_name"] ) && $_FILES["image"]["error"] === 0 ) { // everything okay, do process echo 'yes'; exit(); } } echo 'no'; ?>
Вместо этого используйте empty ().
if (!empty ($_FILES['image'])){ echo 'yes'; } else { echo 'no'; }