Problem bei Bilddarstellung in PHP

mOppst4r

Grünschnabel
Einen wunderschönen angenehmen vorzüglichen guten Tag.

Ich habe ein Problem, welches vielleicht schonmal angesprochen wurde, aber ich habe es, aufgrund diverser fehlerhafter zellstrukturen in meinem Hirn, nicht gefunden.

Also simples Problem ich lade ein Bild hoch, der Pfad wird in der Datenbank gespeichert, wenn ich danach das Bild abrufe, zeigt mir der Browser ( egal welcher Browser ) eine unvollständige Bilddarstellung. Wenn ich allerdings in den ordner gucke wo ich das Bild hingeladen habe und es dort öffne wird es vollständig dargestellt und es ist auch vollständig hochgeladen.

Nun zu den scripts damit ihr meinen anfängerhaften Versuch der PHP Programmierung nachvollziehen könnt.

upload.html:

HTML:
<form action="upload_anzeige.php" method="POST" enctype="multipart/form-data">

Bild: <input type="file" value=".jpg" name="bild"><br>
Dokument: <input type="file" name="dokument"><br>
Text: <textarea name="text" cols="100" rows="10"><br>

<input type="submit" value="hochladen"><br>
</form>


upload_anzeige.php interressant ist da wahrscheinlich nur für euch das Script vom Bild:

PHP:
error_reporting(E_ALL);
include("db_connect.php");

if(is_uploaded_file($_FILES['bild']['tmp_name'])
  and ($_FILES['bild']['error'] == 0))
{
    move_uploaded_file($_FILES['bild']['tmp_name'], "../php/upload/Bild/".$_FILES['bild']['name']);                                  
    
    $bild = $_FILES['bild']['name'];                            
   
   
    
    echo "<h1> Dateiübertragung erfolgreich </h1><br>";
    
    echo "Die Datei wurde erfolgreich hochgeladen!<br>";
    echo "<b>Name</b> ",$_FILES['bild']['name'],"<br>";
    echo "<b>Dateigrösse</b> ",$_FILES['bild']['size']," Bytes<br>";
    echo "<b>Temporärer Name</b> ",$_FILES['bild']['tmp_name'],"<br>";
    echo "<b>Dateityp</b> ",$_FILES['bild']['type'],"<br>";
    echo "<a href=\"../php/upload/Bild/$bild\" target=\"_blank\">Datei anzeigen</a><br>";
    echo "<img src=\"../php/upload/Bild/$bild\"><br><br><br><br>";
 }

Ich hatte folgenden Gedanken: wahrscheinlich müsste man sone Art Warteschleife einbauen damit das Bild komplett angezeigt werden kann.

Achso komischerweise wenn ich jetzt eine html datei mache und das Bild direkt vom Ordner aufrufen möchte zeigt er mir das Bild auch nur unvollständig an.

HTML:
<img src="../php/upload/Bild/bild.jpg">

läuft alles über localhost.

Naja vielleicht könnt ihr schlauen köpfe meinen Kopf etwas schlauer machen.

Danke im vorraus ...

MfG mOppi
 
Zuletzt bearbeitet:
Also wenn Du Deinen Code 1zu1 kopiert hast sind schon mal 2 Fehler drin.

Kein Korrektes HTML (Attribute immer mit "" !)
PHP:
echo "<a href=../php/upload/Bild/$bild target=about_blank>Datei anzeigen</a><br>";
PHP:
echo "<a href=\"../php/upload/Bild/$bild\" target=\"about_blank\">Datei anzeigen</a><br>";
und ein Stück drüber noch ein Fehler
PHP:
move_uploaded_file($_FILES['bild']['tmp_name'], "../php/upload/Bild/ .$_FILES['bild']['name']);
hier fehlt ein " am Ende
PHP:
move_uploaded_file($_FILES['bild']['tmp_name'], "../php/upload/Bild/ .$_FILES['bild']['name']");

Ob das aber genau Dein Problem ist kann ich Dir nicht genau sagen. Das File scheint er ja korrekt zu uppen.
 
Zuletzt bearbeitet:
Da hattest du schonmal recht, aber das war nicht die Lösung des Problems.
Das waren wahrscheinlich nicht die einzigen Fehler die ich gemacht habe.
Habe das alles direkt mal korrigiert.
Danke schön :)

Zurück zu meinem eigentlichen Problem.

MfG mOppi
 
Klingt für mich alles etwas verwirrend, da das eigentlich klappen müsste.

Ich würde mal folgende Schritte machen:
1. Ist die hochgeladene Datei gleich groß wie die Original-Datei
2. Mal ein sehr großes (1600x1200) , ein mittleres (640x480) und ein kleines (50x50) Bild hochladen. Überall der selbe Fehler? immer an der gleichen Stelle (zb. genau bei 50% des Bildes)?
3. Passiert der Fehler bei allen Bildtypen? jpg/png/gif
4. Ist das nur bei mir lokal oder auch auf einem anderen Server? (mal bei nem freehoster testen)
 
1. JA

2. das einzige welches komplett angezeigt wird ist 50*50
je nach größe ist der Fehler in der Darstellung der gleiche, sprich also bei 800 mal 600 bricht der Bildaufbau an der glechen stelle ab.

3. jpg/png/gif immer das gleiche...

4. probier ich noch ... dann werde ich diese erkenntnis auch kund geben ...
 
Zurück