enclave
Goto Top

Upload Script - Ich packs net

Hallo alle zusammen,

ich hab hier nen Upload Script. Das ist ganz simpel und ist nur für ihn und da muss keine Überprüfung drinn sein oder so. Ist fürs Intranet. Aber irgendwie hab ich was verpasst und der lädt einfach keine Dateien hoch...

Mfg

Enclave

<?
$add = $_GET['add'];  
$ow = $_GET['ow'];  
$filename = $_FILES['file']['name'];  
$file = $_FILES['file']["tmp_name"];  
if ($add == "")  
{
?>
<html>
<head>
<title>
PHP Test Upload
</title>
</head>
<body bgcolor="black" text="white">  
<table border="0" width="100%" height="100%" align="center"><tr><td width="100%" height="100%" valign="middle" align="center">  
<form action="index.php?add=1" method="post"><table border="1" style="border-color:#FFFF5A; border-style:solid;" frame="void">  
<tr><td align="right" valign="middle" style="border-color:#FFFF5A; border-style:solid;"><b>Dateiname:     </td><td align="left" valign="middle" style="border-color:#FFFF5A; border-style:solid;">     <input type="text" name="filename"></td></tr><tr><td style="border-color:#FFFF5A; border-style:hidden;"><br> </td></tr>  
<tr><td align="right" valign="middle" style="border-color:#FFFF5A; border-style:solid;"><b>Durchsuchen:     </td><td align="left" valign="middle" style="border-color:#FFFF5A; border-style:solid;">     <input type="file" name="file"></td></tr><tr><td style="border-color:#FFFF5A; border-style:hidden;"><br> </td></tr>  
<tr><td align="right" valign="middle" style="border-color:#FFFF5A; border-style:solid;"><b>Hochladen:     </td><td align="left" valign="middle" style="border-color:#FFFF5A; border-style:solid;">     <input type="submit" value="GOGOGO"></td></tr>  
</form>
</td></tr></table></body></html>
<?
}
else
{
if ( $filename != "") {  
	if (file_exists("files/$filename" and $ow != "1")) {  
		echo "Eine Datei mit solch einem Namen existiert bereits!<br><br>Überschreiben?<br><br><a href=\"index.php?add=1&ow=1\">Ja</a><br><br><a href=\"index.php?add=\">Nein</a>";  
		exit;
	}
	copy($file,"files/$filename");  
	@chmod(files/$filename, 777);
	echo "Datei erfolgreich hochgeladen!!!<br><br><br>Link zur Datei: <a href=\"/files/$filename\">http://172.16.0.55/files/$filename</a>";  
}
else
{
echo "ERROR! Kein Dateiname angegeben!!! <a href=\"index.php\">Zurück</a>";  
}
}

PS: Das HTML ist nicht vorn mir ich sollte nur die Upload Funktion reinbauen. Was hab ich das falsch gemacht?

Content-Key: 52387

Url: https://administrator.de/contentid/52387

Printed on: April 23, 2024 at 22:04 o'clock

Member: Xerebus
Xerebus Feb 22, 2007 at 16:48:30 (UTC)
Goto Top
Kenn mich ja nicht gut aus damit aber muss du wenn du den "<?php" tag öffnest den nicht auch wieder schliessen?
Irgendwie passt die syntax nicht.
Schau mal unter http://www.php.net/manual/de/language.basic-syntax.php
Member: Enclave
Enclave Feb 22, 2007 at 21:32:13 (UTC)
Goto Top
Ne der Syntax stimmt schon das macht der automatisch also ich hab nen ganzes Script reingehauen und der macht autmatisch ma Anfang das <?php Deswegen steht das auch 2 mal da

Mfg

Enclave
Member: AxelHahn
AxelHahn Feb 23, 2007 at 07:47:51 (UTC)
Goto Top
Hallo,

1) dein Formular macht ein POST. Dein PHP-Schnipsel zu Beginn fragt aber GET-variablen ab. Die werden daher wohl immer leer sein.

2) Baue testweise Debugoutput ein, um zu sehen, was bei dir passiert - etwa sowas
echo "Variablenname=" $Variablenname ."
";

Viele Grüsse
-= Axel =-
Member: SteinBeiser
SteinBeiser Feb 23, 2007 at 08:18:59 (UTC)
Goto Top
versuchs mal damit

<?php

$add = $_GET['add'];  
$ow = $_GET['ow'];  
$filename = $_POST['filename'];  
$file = $_FILES['file']["tmp_name"];  
if ($add == "")  
{
?>
<html>
<head>
<title>PHP Test Upload</title>
</head>
<body style="background-color:black; color:white">  
<table border="0" width="100%" height="100%" align="center"><tr><td width="100%" height="100%" valign="middle" align="center">  
<form action="index.php?add=1" method="post" enctype="multipart/form-data"><table border="1" style="border-color:#FFFF5A; border-style:solid;" frame="void">  
<tr><td align="right" valign="middle" style="border-color:#FFFF5A; border-style:solid;">Dateiname:     </td><td align="left" valign="middle" style="border-color:#FFFF5A; border-style:solid;">     <input type="text" name="filename"></td></tr><tr><td style="border-color:#FFFF5A; border-style:hidden;">  
 </td></tr>
<tr><td align="right" valign="middle" style="border-color:#FFFF5A; border-style:solid;">Durchsuchen:     </td><td align="left" valign="middle" style="border-color:#FFFF5A; border-style:solid;">     <input type="hidden" name="MAX_FILE_SIZE" value="30000"><input type="file" name="file"></td></tr><tr><td style="border-color:#FFFF5A; border-style:hidden;">  
 </td></tr>
<tr><td align="right" valign="middle" style="border-color:#FFFF5A; border-style:solid;">Hochladen:     </td><td align="left" valign="middle" style="border-color:#FFFF5A; border-style:solid;">     <input type="submit" value="GOGOGO"></td></tr>  
</form>
</td></tr></table></body></html>
<?php
}
else
{
if ( $filename != "") {  
    if (file_exists("files/$filename") and $ow != "1") {  
        echo "Eine Datei mit solch einem Namen existiert bereits!  

Überschreiben?

<a href=\"index.php?add=1&ow=1\">Ja</a>  

<a href=\"index.php?add=\">Nein</a>";  
        exit;
    }
    copy($file,"files/$filename");  
    @chmod(files/$filename, 777);
    echo "Datei erfolgreich hochgeladen!!!  


Link zur Datei: <a href=\"/files/$filename\">http://172.16.0.55/files/$filename</a>";  
}
else
{
echo "ERROR! Kein Dateiname angegeben!!! <a href=\"index.php\">Zurück</a>";  
}
}

?>

Benutzt mal zum nachschalgen selfHTML & selfPHP ist ganz hilfreich.
die sache mit dem überschreiben da muste noch was anderes überlegen.
Member: Enclave
Enclave Feb 23, 2007 at 14:47:48 (UTC)
Goto Top
@acel Hahn: Die GET's sind richtig denn die beiden Werte werden ja an die URL angehängt also ow und add. Die anderen beiden werden mit _FILES abgerufen.

@SteinBeiser: Danke das hat funktioniert. Ich weis echt nicht was los ist (bin vermutlich ausser übung). Eigentlich kann ich PHP recht gut hab auch schonmal nen System geschrieben wo auch nen DateiUpload bei war (der hat eigentlich das Zentrum davon ausgemacht) nur ich weis einfach nicht wodran es gelegen hat.

Werd mich wieder mal in PHP einarbeiten...

MFG und vor allem vielen Dank

Enclave
Member: SteinBeiser
SteinBeiser Feb 23, 2007 at 14:59:21 (UTC)
Goto Top
Schau dir mal $filename = an.
und den form tag.
Member: Enclave
Enclave Feb 23, 2007 at 18:37:21 (UTC)
Goto Top
Ahhh

Ich hatte das auch erst mit POST aber mit dem gleichen Ergebnis. Lag dann wohl an meinem vergessenem enctype...

Danke

Enclave
Mitglied: 17735
17735 Apr 16, 2007 at 17:49:00 (UTC)
Goto Top
Hallo,

nur mal so am Rande: Statt der copy()-Funktion ist es sinnvoll, bei PHP-Upload-Scripten die Funktion move_uploaded_file() zu verwenden, Syntax wie bei dem hier verwendeten copy()-Syntax.

Gruß,
Ahnenforscher

PS: Dafür wurde die Funktion nämlich entwickelt face-wink