PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Upload funzt nett



Diabolo
26-10-2002, 15:33
Hi Leute ich abeite gerade an einem PHP Script welches mir das Uploaden von bildern auf den server ermöglichen soll.

In meiner ersten Funktion klappt alles so wie es soll nur in der Zeite nicht mehr: Warum das? Hier mal meine Funktionen:

[Erste]

function imageupload($username, $file, $file_type)
{
if($file != "")
{
if(@filesize($file) <= 30720)
{
$user = $username;
$username = strtolower($username);
if($file_type == "image/gif"){$file_name = $username . ".gif";}
elseif($file_type == "image/pjpeg"){$file_name = $username . ".jpg";}
else{$file_name = $username . ".bak";}
if(@copy($file, "../image/userimage/$file_name"))
{
if($file_type == "image/gif" || $file_type == "image/pjpeg")
{
require("../include/db.inc");
$query = "UPDATE aaouser SET image = \"$file_name\" WHERE username = \"$username\"";
$dbquery = mysql_query($query, $dbh);
if(@dbquery)
{
print ("<p>Dein Bild wurde hochgeladen.</p>");
}
}
else
{
unlink("../image/userimage/$file_name");
print("<p>Fehler: Es können nur Dateien mit den Endungen .jpg oder .gif verwendet werden. Versuch es bitte erneut.</p>");
}
}
}
else
{
print("<p>Die Datei darf nicht größer sein als 25 KB (25600 Bytes).</p>");
}
}
else
{
print("<p>Du must eine Datei angeben!</p>");
}
}

[Zweite]
function imgupload($file, $file_type, $file_name)
{

if($file != "")
{
if(($file_type == "image/gif") || ($file_type == "image/pjpeg"))
{
if(copy($file, "../image/$file_name"))
{
print ("<p>Dein Bild wurde hochgeladen.</p>");
}
else
{
print("Es ist ein Fehler aufgetreten bitte versuch es noch einmal!");
}
}
else
{
print("<p>Fehler: Es können nur Dateien mit den Endungen .jpg oder .gif verwendet werden. Versuch es bitte erneut.</p>");
}
}
else
{
print("<p>Du must eine Datei angeben!</p>");
}
}

Hier noch mal die Fehlermeldung die ich erhalte.

F:\\Bild & Grafik\\Website Images\\avatars\\test.jpg
Warning: Unable to open 'F:\\Bild & Grafik\\Website Images\\avatars\\test.jpg' for reading: No such file or directory in /homepages/12/htdocs/army/editarea/adminedit.php on line 82

Danke

Gaert
26-10-2002, 20:10
Hallo!

Wäre nett, wenn du die PHP Tags des Forums zum Posten benutzen würdest, dann wärs um einiges besser lesbar!

Ausserdem sind deine If - Else Verschachtelungen voll eklig!

Besser wäre sowas hier, nur so ein kleiner Tip am Rande



if(!$file)
{
print("<p>Du must eine Datei angeben!</p>");
return false;
}

if(!@filesize($file) <= 30720)
{
print("<p>Die Datei darf nicht größer sein als 25 KB (25600 Bytes).</p>");
return false;
}

...
.....
......

return true;


Aber jetzt mal zu deinem Problem:
Du mißverstehst anscheinend den Upload Prozess... du kannst nicht auf die Platte des Clients zugreifen!!!
Du kannst nur Dateien Lesen, die sich auf deinem Server, oder sonstwo im offen Internet befinden!

Stell dir mal vor, jeder könnte sich ohne dein wollen von seinem Server Dateien von deinem Rechner Hochladen... da wäre Polen offen!

Um den Upload Prozess zu verstehen solltest du das hier mal Lesen!

http://www.php.net/manual/de/features.file-upload.php

Dort findest du auch massig Codebeispiele für den Upload....

Diabolo
27-10-2002, 09:30
Hi

Ich glaub das ist nen bischen was falsch verstanden worden, ich will nicht auf die Platte des Clients zugreifen, sonderem dem Clienten ein bildupload ermöglichen.

Danke noch für den Tip mit den Verschachtelungen, hab das so in der Schule gelernt, werd mich aber bessern ;)

Und jetzt zu meinem Problem, ich hab den Fehler gefunden! Lag an meinem Formular anstelle des Tags </form> hatte ich </font> drin. Jetzt funz alles.

Denoch Danke

Gaert
27-10-2002, 14:06
Naja... anhand der geposteten Fehlermeldung, sah es halt so aus!

In der Schule sind so Verschachtelungen schön... erinnert mich auch ein wenig an meine Klausuraufgaben (*kotz*), aber in der Praxis ist weniger oft mehr!