Загрузите изображение по умолчанию, если пользователь не загрузил

У меня есть кусок кода из upload.php

$uploaddir = '../photo/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { //... } 

Как добавить функцию, если пользователь не загрузил изображение, загружается изображение по умолчанию?

Вы должны сначала проверить $_FILES['userfile']['error'] === UPLOAD_ERR_OK
если это не UPLOAD_ERR_OK , тогда что-то пошло не так.
Список ошибок можно найти здесь: file-upload.errors

Пример:

 $uploaddir = '../photo/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) { if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { /** do stuff **/ } } else { echo "An error occurred with your upload.<br>"; switch($_FILES['userfile']['error']) { case UPLOAD_ERR_INI_SIZE: echo "The uploaded file exceeds the upload_max_filesize directive in php.ini"; break; case UPLOAD_ERR_FORM_SIZE: echo "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"; break; case UPLOAD_ERR_PARTIAL: echo "The uploaded file was only partially uploaded"; break; case UPLOAD_ERR_NO_FILE: echo "No file was uploaded"; break; case UPLOAD_ERR_NO_TMP_DIR: echo "Missing a temporary folder"; break; case UPLOAD_ERR_CANT_WRITE: echo "Failed to write file to disk"; break; case UPLOAD_ERR_EXTENSION: echo "File upload stopped by extension"; break; default: $message = "Unknown upload error"; break; } } 

Это не мой ответ. Это комментарий CodeAngry :

Почему бы не использовать URL-адрес изображения по умолчанию, чтобы вы не загружали его каждому пользователю. Поэтому, если у пользователя есть изображение, покажите его. Если он не просто использует значение по умолчанию

Более эффективно хранить только изображение, которое пользователь явно загружает. Если пользователь не загрузил его, тогда, когда вы должны показать, что он делает что-то вроде этого:

PHP

 //assumimg you stored the image with user_id as name $path_to_image = "img/" . $user_id . ".jpg"; $image = (file_exists($path_to_image)) ? $path_to_image : $default_image_path; 

HTML

 <img src="<?=$image?>" alt="" /> 

Плюс это сэкономит вам место на диске!

вы также можете использовать это: (конечно, под эхом «» в случае php)

 // Replace source with other image in case user didn't upload any photo $('img').error(function(){ $(this).attr('src', 'missing.png'); }); // Or, hide the 'broken image' $("img").error(function(){ $(this).hide(); });