"We are back" « oc.at

php bildupload

unki 16.06.2004 - 09:52 1656 30
Posts

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
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>

xcc

Big d00d
Avatar
Registered: Jun 2002
Location: nähe Salzburg
Posts: 157
Code: PHP
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
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
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
Avatar
Registered: Jun 2002
Location: nähe Salzburg
Posts: 157
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
Registered: Dec 2002
Location: Inside
Posts: 4465
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
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
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
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
@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
Avatar
Registered: Feb 2001
Location: Bez. Tulln
Posts: 5319
Und wie wär es wenn du es überhaupt mit FTP uploadest?

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4465
Wenn du in der Zeile nach move_uploaded_file
Code:
system("ls -ld ../symbolpix/$image_name");
, was wird dir angezeigt (wenn system ueberhaupt geht)

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
also, copy() macht keinen unterschied!
@römi: ist natürlich eine gute idee, bloß für mich nicht zufriedenstellend!!!

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
dies wird mir angezeigt:
-rw------- 1 herho4014 noaccess 557 Jun 17 2004 ../symbolpix/third.gif

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4465
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
Code:
-rw-r------ oder 0640
haben.

Ist er aber nicht in der Gruppe "noaccess" muss die Datei mindestens folgende Rechte haben:
Code:
-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?
Code: PHP
chmod("../symbolpix/$image_name", 0666);

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
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@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2306
Bitte sehr, bitte gerne! Ich bin doch hier um zu helfen! :D Dachte schon, Du löst das problem nie und wir werden mit dem Zeugs niemals fertig. :)

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz