php bildupload
unki 16.06.2004 - 09:52 1656 30
unki
Little Overclocker
|
na dann schauma mal: <?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>
|
xcc
Big d00d
|
print("<img src = \"../pix/save+redirect.gif\">\n");
hier musst du schon den Dateinamen und das richitge verzeichnis angeben, sonst wird da nichs funken
|
unki
Little Overclocker
|
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!!!!
Bearbeitet von unki am 17.06.2004, 14:45
|
xcc
Big d00d
|
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
|
Rektal
Here to stay
|
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?
|
unki
Little Overclocker
|
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.
|
unki
Little Overclocker
|
@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!
|
Römi
Hausmeister
|
Und wie wär es wenn du es überhaupt mit FTP uploadest?
|
Rektal
Here to stay
|
Wenn du in der Zeile nach move_uploaded_file system("ls -ld ../symbolpix/$image_name");
, was wird dir angezeigt (wenn system ueberhaupt geht)
|
unki
Little Overclocker
|
also, copy() macht keinen unterschied! @römi: ist natürlich eine gute idee, bloß für mich nicht zufriedenstellend!!!
|
unki
Little Overclocker
|
dies wird mir angezeigt: -rw------- 1 herho4014 noaccess 557 Jun 17 2004 ../symbolpix/third.gif
|
Rektal
Here to stay
|
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 -rw-r------ oder 0640
haben. Ist er aber nicht in der Gruppe "noaccess" muss die Datei mindestens folgende Rechte haben: -rw------r--- oder 0604
Normalerweise macht man 0644 (owner lesen/schreiben, andere nur lesen). Wenn du die Datei auch ueber Webserver loeschen willst musst du (vereinfacht gesagt) die Rechte 0666 geben. Und warum funktioniert chmod nicht? chmod("../symbolpix/$image_name", 0666);
|
unki
Little Overclocker
|
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!
|
grOOvekill@
LegendVienna Badass
|
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.
|
Ringding
Pilot
|
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.
|