Probleme mit File Upload

Mairhofer

Erfahrenes Mitglied
Hi und Schönen guten Abend,

ich habe ein Problem mit meinem Fileupload.

Ja, ich habe die Suchfunktion genutzt, von dort mehrere Varianten versucht und ich komme nicht weiter.

Ich arbeite hier nur zum testen mit WAMP Packet, wo nach phpinfo(); zu GB Lib folgendes steht:
GD Support enabled
GD Version bundled (2.0.22 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Zuerst habe ich mir folgendem Code angefangen (ohne GD):

HTML Formular:
Code:
<form method="POST" action="test.php" enctype="multipart/form-data">
...
<input type="file" name="bildurl" size="26">
<input type="submit" value="Hinzufügen" name="klick_mich">
</form>

Wo ... steht, bedeutet ich habe dort noch mehrere <INPUT> Felder, wo texte reingeschrieben werden. Ich denke das ist nicht von Bedeutung.

Die PHP Datei verarbeitet das folgender Maßen:

PHP:
$name = $HTTP_POST_FILES["bildurl"]['name'];        
$tmp  = $HTTP_POST_FILES["bildurl"]['tmp_name'];    
@move_uploaded_file($tmp, $UPLOAD_PATH_FOR_PK_IMAGES."/".$name);
Ich habe diesen Code aus einem kostenlosem Uploadscript und nur auf meine Bedürfnisse geändert.
Nun nachdem das nicht geklappt hat, bin ich wie schon gesagt, auf grosse Suche gegangen.
Ich habe gelesen, das copy(); nicht gehen würde auf nem Server mit safe_mode=ON und ein Test ergab, geht auch nicht.
Weiter gesucht, bin ich auf
http://www.tutorials.de/forum/showthread.php?s=&threadid=65809
gestossen. Ich dachte, nun muss es ja klappen, aber nix. Dort erhalte ich den Fehler:

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\Webserver\htdocs\dev\includes\_test.php on line 228
Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\Webserver\htdocs\dev\includes\_test.php on line 239
[EDIT]
es heisst f u n k t _ t e s t . p h p . irgendwie ist das f u n k t immer weg wennich übernehmen klicke (ohne die Leerzeichen versteht sich)
[/EDIT]
In dieser Funktionsdatei hab ich die Klasse gepackt aus dem obrigen Link und die Befehle dieser Zeilen lauten:
imagejpeg($this->im, $file, $quality);
und
imagedestroy($this->im);

Es wäre gut zu wissen, ob das ganze nun an WAMP liegt oder ich zu dämlich bin. Richtig geil wäre es, wenn mir vielleicht ein wirklich funtzendes Beispiel geben könnte, das er vielleicht schonmal auf nem WAMP getestet hat, eins mit der GD Geschichte wäre ein Traum, aber soviel will ich jetzt gar nicht verlangen. Wichtig ist erstmal zu wissen obs an mir oder WAMP liegt.

Freue mich über Antworten :D
Andreas

Edit:
2 Rechtschreibfehler entfernt
 
Zuletzt bearbeitet:
Bin jetzt ein bisschen verwirrt, da du einerseits von einem Dateiupload sprichst, andererseits allerdings eine Thumbnail-Klasse zur Lösung des Problems heranziehst...?

Wie auch immer. Entferne mal das @ beim Aufruf von move_uploaded_file, das sorgt nämlich dafür dass etwaige Fehlermeldungen nicht ausgegeben werden. Die wären aber ganz nützlich bei der Fehlersuche.
 
Hi!

Also nun hab ich mal ne Fehlermeldung :DDD

Da steht:
Warning: move_uploaded_file(http://localhost/dev/templates/pkatalog_images/button_sort.gif): failed to open stream: HTTP wrapper does not support writeable connections. in C:\Webserver\htdocs\dev\administration\test.php on line 53

Warning: move_uploaded_file(): Unable to move 'C:\DOKUME~1\Andreas\LOKALE~1\Temp\php63.tmp' to 'http://localhost/dev/templates/pkatalog_images/button_sort.gif' in C:\Webserver\htdocs\dev\administration\test.php on line 53

So, ich könnte mir ja jetzt vorstellen, das der meint, das der Ordner nicht da ist. Der ist da. Ein Schreibschutz hat er nicht, soweit man das unter Windows einstellen kann.

Irgendeine Idee?
 
Hm, du versuchst tatsächlich auf eine URI zu schreiben? Na dann viel Glück ;)
Du brauchst als zweiten Parameter bei move_uploaded_file natürlich eine Pfadangabe.
 
Ok hab nen bischen gegoogled.
Hab gelesen, das man keinen Pfad mit http:// nutzen sollte, wenn so eine Meldung kommt.

Nun, wenn ich jetzt nen relativen Pfad nehme, muss ich dann vom Apache Root ausgehen oder von C:/ oder vom Temp ordner von Windows (da scheint er ja den Upload hin zu machen zum ZW Speichern) ?

Ich merk schon das wird ne lange nacht....
 
Ok alles geklärt! War der Webserver Root.

Ja einfach mal testen und nicht fragen würd hier allen ne Menge Arbeit und Ärger ersparen.

Jetzt mal versuchen, das Bild zu resizen.
 
Prinzipiell gehst du bei Pfadangaben in PHP-Scripts von dem Verzeichnis aus, in dem dein Script liegt. Du kannst dann mit relativen oder auch absoluten Pfadangaben arbeiten, also z.B. "./uploaded_files/myfile" oder "c:/php/uploaded_files/myfile" oder wie auch immer.
 
So hat auch geklappt!

Ich Depp hab natürlich nen Gif ausgewählt und mit der Jpeg Funktion das versucht umzuwandeln :rolleyes:

Ich bitte um keinen Kommentar ;)

Vielen Dank für den Support, jetzt kann ich in nen paar Stunden beruhigt schlafen.
 
Zurück