URL: https://www.overclockers.at/coding-stuff/php_bildupload_117248/page_2 - zur Vollversion wechseln!
na dann schauma mal:
Code: PHP<?php include("../db_login.php"); ?> <html> <head> <title>SymbolUpload</title> </head> </body> <?php if ($Speichern){ if($fotoup == "old"){ $select = "SELECT symbol FROM Leistungen where l_id = $lid;"; $abfrage = mysql_query($select); $dataset = mysql_fetch_row($abfrage); } if ($image_size > 0 AND $image_type == "image/gif"){ if(!empty($image_name)){ if(move_uploaded_file($image, "../symbolpix/$image_name")){ $change = "UPDATE Leistungen SET symbol = '$image_name' where l_id = $lid;"; if(!mysql_query($change)){ die("Der Bildupload konnte nicht durchgeführt werden:<br>".mysql_error(). "<a href=\"editleistung.php\">zurück zur Tabelle</a>"); } else{ if($fotoup == "old" && $image_name != $dataset[0]){ unlink("../symbolpix/".$dataset[0]); } print("<center><h1>Der Bildupload war erfolgreich</h1>\n"); print("<br><br>\n"); print("<img src = \"../pix/save+redirect.gif\">\n"); print("<script language=\"JavaScript\">\n"); print("window.setTimeout('window.location.href=\"editleistung.php\"','3000')\n"); print("</script>\n</center>\n"); } } else{ print("<center><h1>Der Kopiervorgang funkt irgendwie nicht</h1></center>\n"); } } } else{ print("<center>\n"); print("<h2>Der Upload (zB. kein Bildformat) konnte nicht durchgeführt werden</h2>"); print("<br>"); print("<img src = \"../pix/save+redirect.gif\">\n"); print("<script language=\"JavaScript\">\n"); print("window.setTimeout('window.location.href=\"editleistung.php\"','6000')\n"); print("</script>\n</center>\n"); } } else{ ?> <form action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data" method = "post"> <br> <br> <br> <center> <h2>Bitte laden Sie hier das Symbol hoch!</h2> <br> <br> <br> <br> <input type=file size=50 maxlength=100000 name="image" accept="image/gif"> <br> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="65536"> <br> <input type="submit" value="Hochladen" name="Speichern"> <input type = "hidden" name = "lid" value = "<?php echo $l_id; ?>"> <input type = "hidden" name = "fotoup" value = "<?php echo $foto; ?>"> <br> <br> <a href="javascript:history.go(-1)">zurück</a> </center> <br> <br> </form> <?php } ?> </body> </html>
Code: PHPprint("<img src = \"../pix/save+redirect.gif\">\n");
ok, vergiss diese zeile! die hat nix mit dem bildupload zu tun!!!!!!
das upgeloadete bild wird dann in anderen scripts aufgerufen!!! dies ist effektiv nur der upload!
vielleicht sollte ich nochmal betonen, dass das bild angezeigt wird, wenn ich es per ftp nochmals hochlade!!!!
das sie nichts mit dem Upload zu tun hat weiß ich schon
aber du hast gesagt, das die datei hochgeladen wird, oder ? und wenn du diese mittels FTP runterlädst, dann kansnt du dir die datei lokal anschauen, oder hab ich da was falsch verstanden ??
nimm mal copy anstatt move_uploadet_file
Bei dem obrigen code:
1) hast du schon mit error_reporting(E_ALL) probiert, irgendwas rausgekommen?
2) Ich bin mir nicht sicher ob ich den Thread richtig gelesen habe, aber: ist das Bild nun im dem gewuenschten Verzeichnis ( ../symbolpix/ ) und kann nur nicht angezeigt werden oder ist es auch gar nicht drinnen, d.h. move_uploaded_file() hat das bild schon gar nicht hingeschoben?
du hast es schon richtig verstanden!
ich habe es zuerst mit copy gehabt, da bekam ich aber auf 'meinem' server ne fehlermeldung, deshalb hab ich move_uploaded_file verwendet. hmmm....ich werd's aber mal auf die schnelle probieren.
@rektal:
add1) nein
add2) wohl, das bild ist im gewünschten verzeichnis!!! wird aber nicht angezeigt, obwohl ihm html-quellcode kein fehler ist und das <img> tag auf die richtige position zeigt. erst nach nochmaligen uploaden per ftp, wird das bild dann auch angezeigt!
Und wie wär es wenn du es überhaupt mit FTP uploadest?
Wenn du in der Zeile nach move_uploaded_file
, was wird dir angezeigt (wenn system ueberhaupt geht)Code:system("ls -ld ../symbolpix/$image_name");
also, copy() macht keinen unterschied!
@römi: ist natürlich eine gute idee, bloß für mich nicht zufriedenstellend!!!
dies wird mir angezeigt:
-rw------- 1 herho4014 noaccess 557 Jun 17 2004 ../symbolpix/third.gif
Bingo. Ein Unix permission Problem. herho4014 ist dein Unix-User, ev. auch dein Login (nicht wichtig). Aber NUR dieser User kann die Datei lesen. Der Webserver laeuft unter einem anderen Benutzer, z.B. "www-data".
Ist der Webserver in der Gruppe "noaccess" muesste die Datei mindestens die Rechte
haben.Code:-rw-r------ oder 0640
Code:-rw------r--- oder 0604
Code: PHPchmod("../symbolpix/$image_name", 0666);
tja, das wars!
es funkt jetzt!
ich habe das mit chmod falsch verstanden, da ich per ftp die rechte nicht einstellen bzw. verändern konnte.
naja, jedenfalls ist das problem behoben!
DANKE!
Bitte sehr, bitte gerne! Ich bin doch hier um zu helfen! Dachte schon, Du löst das problem nie und wir werden mit dem Zeugs niemals fertig.
Lang hat's gedauert, es ist schließlich immer das gleiche, wenn ein Thread mit diesem Subject auftaucht - der letzte ist zwar jetzt schon eine Weile her, aber trotzdem gibt's schon eine Handvoll davon.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025