我有一个带有文件上传的表单,我希望在没有选择文件时不显示文件(图像)。我总是得到一个破碎的图像,因为脚本正在我的数据库中写一个图像路径。但是,当没有选择文件(图像)时,我不想显示图像。
这是我的php代码:
$info_messages = array();
$filename = '';
// Wenn es kein Odner "user_pic" gibt, dann wird einer erstellt
if( !is_dir( 'user_pics' ) ){
mkdir( 'user_pics' );
}
// Sicherstellen, dass nur Bilder vom Typ JPG hochgeladen wurden
if( isset( $_FILES['w_pic']['type'] ) != 'image/jpeg' ){
$info_messages[] = 'Format des Fotos muss "JPG" sein!';
}
if ( $_FILES['w_pic']['size'] > 0 ) {
list( $width, $height ) = getimagesize( $_FILES['w_pic']['tmp_name'] );
// Überprüfen, dass das Bild nicht größer als "360x280" Pixel groß ist
if( $height > 360 || $width > 280 ){
$info_messages[] = "Das Bild darf maximal \"360\" Pixel hoch und \"280\" Pixel breit sein!";
}
}
// Wenn es Fehler gibt, dann werden sie ausgegeben, ansonsten führe die SQL-Query aus
if ( count( $info_messages ) > 0 ) {
echo "<div id='workerform'><h3>Folgende Fehler sind aufgetreten</h3></div>" . implode( "<br>", $info_messages );
} else {
// nutzen der Do-While Schleife zum erzeugen eines eindeutigen neuen Dateinamens für die hochgeladenen Datei
do{
$filename = md5( uniqid() . $_FILES['w_pic']['name']) . ".jpg";
} while( file_exists( 'user_pics/'.$filename ) );
// verschiebt eine Datei aus dem TMP-Upload Verzeichnis ins Zielverzeichnis
move_uploaded_file( $_FILES['w_pic']['tmp_name'], 'user_pics/'.$filename );
和我的HTML代码:
<p>
<?php if (!is_null($value['w_pic'])) : ?>
<img src="<?= $value['w_pic'] ?>">
<?php endif; ?>