Bilder hochladen

MSuter

Erfahrenes Mitglied
Ich habe mir mit Hilfe einer Datenbank eine Bildergallerie gebastelt, welcher ich über ein WebFormular updaten kann, mein einziges Problem ist nun, dass ich diese Bilder nicht hochladen kann, ich hab da mal so n'Skript der Funktionieren sollte, aber irgendwie will der nicht so ganz:
Code:
<?php

if ($submit) {
    //auslesen der binären Daten
    $data = addslashes(fread(fopen($bild_daten, "rb"), filesize($bild_daten)));
    //länge des bildnamesn, z.b. <<Idiot.jpg>>  auslesen
    $LaengeBildnameMitEndung = strlen(substr(strrchr($dateipfad,"\\"),1));
    $LaengeBildnameOhneEndung=$LaengeBildnameMitEndung-4;
    //Bildname aus Pfad herausschneiden (zb: <<c:/bilder/idiot.jpg>> --> <<idiot>>
    $bildname = substr(substr(strrchr($dateipfad,"\\"),1),0,$LaengeBildnameOhneEndung);

/*Bis hierhin geht alles, wenn ich nun die daten in eine Datenbank schreibe und wieder auslese, dann geht alles wunderbar, ich will die Binären Daten aber in ein File schreiben!!*/

    $fp = fopen("$bildname.jpg","w");
    fputs($fp,$data);
    fclose($fp);



} else { ?>

    <form method="post" action="<?php echo "$PHP_SELF?wer=$leiter"; ?>" enctype="multipart/form-data" name="formular"  onsubmit="pfad_lesen()">
    <br>Dateipfad:<br>
    <input class="textarea" type="file" name="bild_daten"  size="40">
    <p><input type="submit" class="button" name="submit" value="submit">
    <input type="hidden" name="id" value="<?php echo $welcher_leiter ?>">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <INPUT TYPE="hidden" name="dateipfad">
    </form>

<?php } ?>
 
Ähm...
PHP:
$fp = fopen("$bildname.jpg","w");
sollte
PHP:
$bildname_new = $bildname.".jpg";
$fp = fopen($bildname_new,"w");
heissen.
Wenn mich nicht alles täuscht. Weil er ja sonst die variable als String behandelt...

2b
 
Das ist nicht das Problem!!

Nein, daran liegt es leider nicht, das File wird ja erstellt, auch der Name desF Files und alles ist richtig, bloss der Inhalt stimmt nicht, das bild lässt sich nicht anzeigen, weder im IE noch in einem Zeichnungsprogramm. ausserdem Gibt er unter Eigenschaften Masse an, die Viel zu gross sind, mein neues bild wird über 2000 pixel hoch und genauso breit!!!
 
hmmm...
ich weiss nicht aber vielleicht macht das addslashes da irgendwelchen unsinn... ich meine du lässt da doch von binärdaten alle sonderzeichen schützen... soll heissen, du veränderst den ursprünglichen dateiinhalt ?? oder...

nur mal sone idee...
Warum machst du den fileupload nicht einfach mit copy();

2b
 
Ja, das war bestimmt mal einn Fehler, ich sagte doch habe es aus einem Aâlten Projekt von Mir, mit MySQL, da brauchte ich dies, hier nicht.
Aber Funktionieren tut das ganze noch immer nicht, die Datei ist zwar gleich gross wie das Original und auch die Masse stimmen überein, aber betrachten kann ich es nicht.

Die Copy() funktion kann ich leider nicht verwenden, weil es mein Provider nicht zulässt, diese methode allesdings scheint erlaubt zu sein (Seltsam, aber es ist so!!)
 
Alles Klar

Jetzt Funktioniert es !! :-)
Ich habe bloss einen falschen parameter beim schreiben des Files verwendet (Anstelle von w muss wb stehen, ich will schliesslich binäre Daten schreiben!!

Danke für die Hilfe!!

MSuter
 
Zurück