Php bild hochladen geht nicht!

hallo zusammen!

ich verzweifle langsam. ich versuche ein bild hochzuladen. bis jetzt ohne erfolg.

hauptfehler ist, das ein array, statt string überliefert wird.

ich habe zwei dateien. im formular.php kann man die datei auswählen um mit dem button an upload.php senden.

habe drei felder zum hochladen. bleibt die hochgeladene bzw wenns fehlgeschlagen ist, im tmp verzeichnis oder wird diese datei gelöscht?

habe auch skrippte kopiert um zu sehen, ob es funktioniert. auch hier kein erfolg.

danke schon mal im voraus!

ich verzweifle langsam. ich versuche ein bild hochzuladen. bis
jetzt ohne erfolg.

wird so zu $_FILES[‚userfile‘].

Dies ist ein Array mit verschiedenen Werten. Am besten per print_r o.Ä. ausgeben lassen. Hier stehen mehr infos: http://de.php.net/manual/de/features.file-upload.pos…

Hallo max12neu,

poste doch mal deinen Code der beiden PHP-Dateien, dann kann ich dir sicher weiterhelfen.

Bilder im tmp Verzeichnis werden gleich wieder gelöscht. Als beste Lösung hat sich erwiesen die temporäre Datei an einen anderen Bestimmungsort zu kopieren.

Wenn du die Datei hochlädst, erhälst du von PHP tatsächlich erstmal ein Array. Das enthält verschiedene Informationen über das Bild und sieht erstmal so aus:

array(1) {
[„Datei“]=>
array(5) {
[„name“]=>
string(0) „“
[„type“]=>
string(0) „“
[„tmp_name“]=>
string(0) „“
[„error“]=>
int(4)
[„size“]=>
int(0)
}
}

Bei mehreren Dateien macht das PHP leider etwas komisch. Das sieht dnan nämlich so aus:

$_FILES[‚feldname‘][‚name‘][0] = „Dateiname des ersten
Uploads
$_FILES[‚feldname‘][‚name‘][1] = „Dateiname des zweiten Uploads“
$_FILES[‚feldname‘][‚type‘][0] = „Dateityp des ersten Uploads““
$_FILES[‚feldname‘][‚type‘][1] = „Dateityp des zweiten Uloads“

Mehr dazu auch hier:
http://php.net/manual/de/features.file-upload.multip…

Also um die temporäre Datei zu verschieben musst du bei mehreren Uploads nicht $_FILES[‚feldname‘][‚tmp_name‘] verschieben sondern $_FILES[‚feldname‘][‚tmp_name‘][0] für die erste Datei, $_FILES[‚feldname‘][‚tmp_name‘][1] für die zweite Datei.

Oder du bastelst die eine Schleife die das Array ein bisschen umwandelt, sodass es mehr dem entspricht was du brauchst.

Hoffe das hat schonmal geholfen.

Grüße,
Philipp

erstmal danke!

aber mit move_uploaded_file($_FILES[‚feldname‘][‚tmp_name‘][0], ‚test.jpg‘) - funktioniert es nicht.

hochladen fehlgeschlagen.

if (move_uploaded_file($_FILES[‚feldname‘][‚tmp_name‘][0], ‚test.jpg‘))
{
print "Die Datei wurde gepr

Nichts zu danken.

Hallo,

das sind leider etwas magere Infos um die Fragen zu beantworten…

Schau doch mal hier http://de2.php.net/manual/de/features.file-upload.php

Dann hier noch Anleitungen dazu
http://www.php-einfach.de/tuts_php_datei_upload.php
und hier
http://aktuell.de.selfhtml.org/artikel/php/php-uploa…

hoffe das hilft weiter

Hallo,

das der Upload nicht funktioniert kann viele Ursachen haben. upload_max_size überschritten? Ist Upload auf dem System überhaupt erlaubt? Was gibt var_dump(move_uploaded_file($filename, $destination)) aus?

Grüße Elsoregro

Hallo!

Könntest Du den Code mal hier zeigen? Dann kann Dir eher geholfen werden.

Viele Grüße,
Markus

huhu,
sorry kenn mich mit uploads auch ned aus… :o(

viel glück

Hallo,

ohne nähere Angaben (Quellcode) ist die Hilfe schwer.

Woran könnte es liegen?

  1. Hast du bei

"enctype=„multipart/form-data“ angegeben?

  1. move_uploaded_file ( string $filename , string $destination )

verschiebt, wie der Name schon sagt, die Datei vom temporären EIngansgverzeichnis ins Zielverzeichnis.

  1. wenn du ein Datei hochlädst, ist die Information in $_FILES, das *ist* ein assoziatives Array.

  2. Lese mal da nach:
    http://www.php.net/manual/de/features.file-upload.mu…

  3. Sollte alles nichts helfen, bitte mit Quellcode bei mir nochmal melden.

Grüße
Tom

danke. hab ich schon alles probiert.

ich benutze xampp. im verzeichniss htdocs habe ich einen ordner und da sind die php datei. hab jetzt gemerkt wenn ich auf eigenschaften gehe ist das häkchen schreibgesütz an. komisches hellgrau. aber wenn ich ändere, das gleiche.

als ich mich als administrator eingeloggt habe war der internet zugang weg. auch beim benutzer. kann es vielleich an dem liegen?

Hallo,

habe mal einen Quellcode zusammgebastelt. Damit geht es problemlos. Sollte etwas fehlerhaftes passieren, müßte irgendeine Fehlermeldung ausgegeben werden.

Was geschieht, wenn du das bei dir testest?

Die Datei upload.php:

<?php error_reporting (-1); //ALLES Ausgeben
echo' br /\> "[http://www.w3.org/TR/html4/strict.dtd"\>Test](http://www.w3.org/TR/html4/strict.dtd%22%3ETest) Datei-Upload '; if ($\_FILES) { //print\_r($\_FILES); $retval=move\_uploaded\_file($\_FILES['Datei']['tmp\_name'],$\_FILES['Datei']['name']); echo $retval?'Erfolgreich':'Fehlerhaft'; }else{ echo' Upload Wählen Sie eine Bilddatei von Ihrem Rechner aus: '; } echo''; ?\> Was gibt das Script bei "print\_r($\_FILES);" aus? Grüße Tom

Hey,
etwas mehr konkrete Information muss schon sein.

Schreib mal bitte den Quelltext oder wenigstens, welche Funktionen du verwendet hast.

Hi max12neu,

sorry, das meine 2. Antwort etwas auf sich warten gelassen hat.

Das klingt sehr eigenartig. Der Code müsste so eigentlich funktionieren. Register Globals hat damit eigentlich erstmal nichts zu tun, sollte aber auf jeden Fall ausgeschaltet sein (ist heute eigentlich Standard).

Hast du Zugriff auf dein error log? Ansonsten versuch mal, in der Datei, „ini_set(‚display_errors‘, 1)“ einzufügen. Dann sollten alle PHP-Fehlermeldungen direkt auf der Seite ausgegeben werden. Falls du dann noch nichts siehst, musst du noch die Einstellung „ini_set(‚error_reporting‘, ‚E_ALL ^ E_NOTICE‘);“ ebenfalls anpassen.

Also einfach die beiden Zeilen in den Code. Es könnte auch an Schreibrechten oder einer zu großen Datei liegen.

Lg,
Phil

Ohne Code wird dir kaum einer helfen können.
gänige methode ist

move_uploaded_file($_FILES[‚uploaded‘][‚tmp_name‘], img/bild.png)

weis die AW ist etwas spät aber ^^ noja lese sehr selten meine emails xD

Die sollte nach ner Zeit automatisch gelöscht werden - das is aber von server zu server anders!

Mit freundlichen Gr��en,
denkenreden

Dazu bräuchte ich deine PHP Dateien.