没有文件上传,但会显示损坏的图像

时间:2014-11-26 20:56:32

标签: php database image file-upload

我有一个带有文件上传的表单,我希望在没有选择文件时不显示文件(图像)。我总是得到一个破碎的图像,因为脚本正在我的数据库中写一个图像路径。但是,当没有选择文件(图像)时,我不想显示图像。

这是我的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; ?>

0 个答案:

没有答案