Anmeldung

Ironhide99
18.02.2013, 15:01
Hallo!

Kann wer mir mal einen HTML oder php code sagen womit man datein Uploaden kann (auf seiner Homepage)?
wäre nett ich habe schon Welche Gefunden aber die gehen net ka why.
http://img.eleven-games.net/images-i7213b70lrz.jpg
BlackBonjour
18.02.2013, 17:11
Das ist relativ einfach, als ersten musst du mittels HTML ein Formular erstellen, womit man die Datei auswählen kann:

Quelltext:
  1. <form action="ADRESSE/ZUR/PHP-DATEI.php" method="post">
  2.    <input type="file" name="datei">
  3. </form>
Bei action kommt der Pfad (am besten absolute) zur PHP Datei, welche alles auswertet und speichert. Dann brauchen wir jetzt die PHP Datei:

Quelltext:
  1. <?php
  2.    move_uploaded_file($_FILES['datei']['tmp_name'], '/ABSOLUTER PFAD WO DIE DATEI GESPEICHERT WERDEN SOLL/'.$_FILES['datei']['name']);
  3. ?>
Das ist eig. alles, aber ich würde noch div. Prüfungen machen wie z.B., ob es eine verbotene Datei ist etc., kann das aber jetzt aktuell nicht alles auflisten da ich noch auf der Arbeit bin Bigggrin

Damit du weißt was ich meine:

Quelltext:
  1. if(substr($_FILES['datei']['name'], -4) == '.exe')
  2. {
  3.   die('exe-Dateien sind nicht erlaubt.');
  4. }
Als Beispiel:

index.html -> das Formular von oben
upload.php -> der PHP-Code

index.html:

Quelltext:
  1. <form action="upload.php" method="post">
  2.    <input type="file" name="datei">
  3. </form>
Bei fragen schick mir ne PN.
2 mal bearbeitet, zuletzt von BlackBonjour am 18.02.2013 17:14

🤙

http://www.gameshots.eu/images/2016/10/23/GirlontheWall-Signature510.png

Ironhide99
18.02.2013, 19:34
Geht irgendwie net sad
Ka why
schade
http://img.eleven-games.net/images-i7213b70lrz.jpg
BlackBonjour
18.02.2013, 19:43
schreib mir mal einr pn mit den codes die du gespeichert hast und wie die dateien heissen. Ausserdem die Fehlermeldung, wenn eine da war.

🤙

http://www.gameshots.eu/images/2016/10/23/GirlontheWall-Signature510.png

BlackBonjour
19.02.2013, 12:50
So, hab das Problem gefunden und habe dir jetzt ein ordentliches Uploadsystem gebastelt, welches 100%-ig funktioniert (getestet):

[php]
<?php
class config
{
var $destination = '/ZIELORDNER/'; // Der Pfad, wo die Dateien gespeichert werden sollen...
var $blacklist = array('.exe', '.php'); // Liste der verbotenen Dateien ...
}

function checkPath($folders, $mode = 'folder')
{
if(strpos($folders, '/') !== false)
{
$folderArray = explode('/', $folders);
$folderStr = '';

foreach($folderArray as $key => $folder)
{
if(($mode == 'file' && $folder != $folderArray[count($folderArray) - 1]) || $mode == 'folder')
{
$folderStr .= '/'.$folder;

if(!is_dir($folderStr))
{
mkdir($folderStr);
}
}
}
}
else if($mode == 'folder')
{
if(!is_dir($folders))
{
mkdir($folders);
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Dateiupload <?php if(isset($_POST) && !empty($_POST)){echo '&raquo; Upload erfolgreich';} ?></title>
</head>
<body>
<?php
if(isset($_FILES) && !empty($_FILES))
{
$cfg = new config;
$bad = false;

checkPath($cfg->destination);

foreach($cfg->blacklist as $key => $bad)
{
$length = strlen($bad);

if(substr($_FILES['datei']['name'], '-'.$length) == $bad)
{
$bad = true;
}
}

if(!$bad)
{
move_uploaded_file($_FILES['datei']['tmp_name'], $cfg->destination.$_FILES['datei']['name']);

echo 'Upload erfolgreich.';
}
else
{
echo 'Upload fehlgeschlagen, Dateityp ist nicht erlaubt.';
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="datei" /><br />
<input type="submit" value="Datei hochladen" />
</form>
</body>
</html>
[/php]

Du musst nur Zeile 4 und 5 konfigurieren, also de Zielordner und die Liste derr verbotenen Dateien (Komma getrennt und in ' oder "). Der Zielordner muss absolute sein, also z.B.:

/var/www/mein-upload-ordner/

Wichtig ist auch, dass der / am Ende des Pfades da ist, sonst kommt es zu fehlern. Auch sollte der Name der Datei keine / (Slashes) enthalten.
MfG

BlackBonjour

EDIT: Die Funktion „checkPath” dient zum prüfen des Ordner, ob dieser existiert. Sollte dieser nicht existieren, wird dieser erstellt. Allerdings kann das Script nur dort Ordner erstellen, wo du auch Zugriff hast wie FTP (wenn es ein Webhoster ist z.B.).

EDIT2: @Admins: Ich habe jetzt erst gemerkt dass ich nen DP innerhalb von 24h gemacht habe :/ Ich bitte um Gnade Bigggrin
2 mal bearbeitet, zuletzt von BlackBonjour am 19.02.2013 12:55

🤙

http://www.gameshots.eu/images/2016/10/23/GirlontheWall-Signature510.png

Ironhide99
19.02.2013, 16:43
Danke ich Probiere es gleich mal aus smile
Geht net :

Warning: mkdir() [function.mkdir]: Permission denied in /users/modcraft/www/dateien.php on line 24

Warning: mkdir() [function.mkdir]: No such file or directory in /users/modcraft/www/dateien.php on line 24

Warning: mkdir() [function.mkdir]: No such file or directory in /users/modcraft/www/dateien.php on line 24

Warning: mkdir() [function.mkdir]: No such file or directory in /users/modcraft/www/dateien.php on line 24

es war ne zip datei

hmm
Ich habe gemacht

var $destination = '/users/modcraft/www/downloads/'; // Der Pfad, wo die Dateien gespeichert werden sollen...
------------------- mit NotePad++ --------------


Jetzt ist das so :

?php
class config
{
var $destination = ' da muss das / weg? stand da nähmlich -> modcraft/www/downloads/'; // Der Pfad, wo die Dateien gespeichert werden sollen...
var $blacklist = array('.exe', '.php'); // Liste der verbotenen Dateien ...
}

function checkPath($folders, $mode = 'folder')
{
if(strpos($folders, '/') !== false)
{
$folderArray = explode('/', $folders);
$folderStr = '';

foreach($folderArray as $key => $folder)
{
if(($mode == 'file' && $folder != $folderArray[count($folderArray) - 1]) || $mode == 'folder')
{
$folderStr .= '/'.$folder;

if(!is_dir($folderStr))
{
mkdir($folderStr);
}
}
}
}
else if($mode == 'folder')
{
if(!is_dir($folders))
{
mkdir($folders);
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Dateiupload <?php if(isset($_POST) && !empty($_POST)){echo '&raquo; Upload erfolgreich';} ?></title>
</head>
<body>
<?php
if(isset($_FILES) && !empty($_FILES))
{
$cfg = new config;
$bad = false;

checkPath($cfg->destination);

foreach($cfg->blacklist as $key => $bad)
{
$length = strlen($bad);

if(substr($_FILES['datei']['name'], '-'.$length) == $bad)
{
$bad = true;
}
}

if(!$bad)
{
move_uploaded_file($_FILES['datei']['tmp_name'], $cfg->destination.$_FILES['datei']['name']);

echo 'Upload erfolgreich.';
}
else
{
echo 'Upload fehlgeschlagen, Dateityp ist nicht erlaubt.';
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="datei" /><br />
<input type="submit" value="Datei hochladen" />
</form>
</body>
</html>




Warning: mkdir() [function.mkdir]: Permission denied in /users/modcraft/www/downloads/upload.php on line 24

Warning: mkdir() [function.mkdir]: No such file or directory in /users/modcraft/www/downloads/upload.php on line 24

Warning: mkdir() [function.mkdir]: No such file or directory in /users/modcraft/www/downloads/upload.php on line 24

Warning: mkdir() [function.mkdir]: No such file or directory in /users/modcraft/www/downloads/upload.php on line 24
3 mal bearbeitet, zuletzt von Ironhide99 am 19.02.2013 17:14
http://img.eleven-games.net/images-i7213b70lrz.jpg
BlackBonjour
19.02.2013, 19:23
Du hadt keine Berechtigung einen Ordner zu erstellen. Leg diesen Ordner per Hand an, dann geht es.

Deine Verzeichnis: /users/modcraft/www/ etc.
1 mal bearbeitet, zuletzt von BlackBonjour am 19.02.2013 19:25

🤙

http://www.gameshots.eu/images/2016/10/23/GirlontheWall-Signature510.png

Ironhide99
20.02.2013, 08:46
BlackBonjour schrieb:
Du hadt keine Berechtigung einen Ordner zu erstellen. Leg diesen Ordner per Hand an, dann geht es.

Deine Verzeichnis: /users/modcraft/www/ etc.
Ich habe den ordner in FileZilla erstellt Bigggrin
http://img.eleven-games.net/images-i7213b70lrz.jpg
Um ein Thema öffnen und Beiträge schreiben zu können musst du registriert und angemeldet sein!

Registrieren
Anmelden

Battle Gewinner