douba3975 2014-11-26 20:56
浏览 32

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

I have got a form with a file upload and I would like to have no file(image) should be shown, when no file is selected. I always get an broken image, because the script is writing an image path in my data base. But i do not want show an image, when no file(image) is selected.

Here is my php code:

$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 );

and my HTML code:

<p>
<?php if (!is_null($value['w_pic'])) : ?>
<img src="<?= $value['w_pic'] ?>">
<?php endif; ?>

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
    • ¥15 让node服务器有自动加载文件的功能
    • ¥15 jmeter脚本回放有的是对的有的是错的
    • ¥15 r语言蛋白组学相关问题