Download und Uploadcenter

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Download und Uploadcenter

    Hallo FSBler!
    Ich habe folgendes Problem:
    Ich habe eine Homepage und würde gerne in einem passwortgeschützten Bereich
    (den habe ich schon :) ) eine Art Download und Uploadcenter machen.
    Es sollen alle Personen (die das Passwort für meinen Internen Bereich haben!)

    Dateinen von ihrerer Festplatte in ein Verzeichnis auf dem auf den FTP Sever laden können und auch vom Server wieder herunter.
    Die geuppten Files sollen dann in einer Tabelle sortiert angezeigt werden...
    So ne Art internes Filesharing...
    Das Prob ich habe keinen Plan wie sowas funzt, ob es überhauptz möglich is...
    Also ich habe echt keine Ahnung von PHP,MySQL und Perl:( deswegen wenn einer eine Idee hätte dann bitte für jeden Nichtspeiler verständlich!

    /e Ach ja das mit dem geschützten Bereich is nur gegen Missbrauch...
    MFG Rainis
  • Hi
    Das ist sehr einfach mit PHP realisierbar, allerdings würd ich gern wissen, inwiefern du die Scripte mit Passwort schützt?
    htaccess/js?

    ´gruß
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • na also dann ist ja der schutz kein problem, die scripts für dein tauschportal schmeisst du einfach in den /intern ordner (ich nehm mal an das war dir klar).

    Wenn du nun so was aufziehen willst, wirst du nicht ums coden kommen (obwohl es irgendwie bestimmt fertige lösungen gibt) ;)

    Mit dem HTML-Form element input (type="file") kannst du dateien vom lokalen PC auswählen. Wird das Formular dann abgeschickt, kannst du es per PHP mit $_FILES entgegennehmen und in ein verzeichnis speichern.

    Am besten verlangst du vom user noch einige Meta-Daten (beschreibung usw.), Dateityp, d.h. MIME-Type und Grösse kannst du selbst auslesen (auch wieder mit $_FILES). Diese Angaben speicherst du dann zusammen mit dem Pfad zur Datei in einer Datenbank (z.B. MySQL). Von dort kannst du dann relativ einfach alles wieder auslesen und deinen Leuten zur Verfügung stellen.


    Du musst aber schon etwas PHP können um das zu programmieren.

    Mehr Infos: PHP: Steuerung von Dateiuploads - Manual
    [SIZE=1]"There's no right, there's no wrong, there's only popular opinion." Jeffrey Goines (Brad Pitt) in Twelve Monkeys[/SIZE]

    [SIZE=1]$ killall chico[/SIZE]
  • Jo das mit dem Schutz war mir klar ;)
    Nur wie gesagt ich habe ECHT keinen Plan vom PHP-Coden,oder MySQL ich weiß nur das das auf dem Sever wo ich das hochlade möglich is (MySQL etc.)!
    Könnte mir nicht jemand so was coden oder is das sehr viel aufwand??
    und dann die Codes posten???

    Wer auf jeden Fall sehr dankbar drum!
    Rainis
  • hi
    also ich fang schonma an... editier dann heut abend:

    config.inc.php

    PHP-Quellcode

    1. $sql_host = "localhost"; // Standart:localhost
    2. $sql_user = "user";
    3. $sql_pw = "pw";
    4. $sql_data = "data";
    5. $sql_table = "uploadcenter"; // Einfach lassen
    6. $sql_con = mysql_connect ($sql_host,$sql_user,$sql_pw) OR die("SQL Verbindung fehlgeschlagen");
    7. $sql_sel = mysql_select_db ($sql_data,$sql_con) OR die("SQL-Datenbankauswahl fehlgeschlagen");
    8. $root_dir = "dir/"; // Hauptverzeichnis, in denen User uploaden / downloaden und Ordner hinzufügen können


    ....


    rest folgt .. ^^

    ´gruß
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • mortician, is jetzt nicht dein ernst oder?

    Willst du echt ne ganze down- und upload-platform coden und hier reinstellen?

    Mach doch ein sf-projekt draus, dann haben alles was davon...

    Was es net alles gibt :löl:
    [SIZE=1]"There's no right, there's no wrong, there's only popular opinion." Jeffrey Goines (Brad Pitt) in Twelve Monkeys[/SIZE]

    [SIZE=1]$ killall chico[/SIZE]
  • ich finde ne datenbank ist übertrieben ^^ ich fang auch mal ohne datenbank an
    bin leider gerade auf der arbeit von daher erstmal nur die ansicht der dateien.

    PHP-Quellcode

    1. <?php
    2. if(!isset($_GET['ord'])) { //wenn getvariable ord nicht existiert
    3. $ordner = "."; //variable ordner auf . setzen
    4. } else { //anderenfalls
    5. $ordner = $_GET['ord']; //variable ordner auf die getvariable ord setzen
    6. }
    7. $handle = opendir($ordner);
    8. while ($file = readdir ($handle)) { //solange es dateien im ordner gibt
    9. if($file != "." && $file != "index.php") { // zumindest wenn die datei nicht . oder index.php heißt
    10. if(is_dir($ordner."/".$file)) { //und ein ordner ist...
    11. $ord = $ordner."/".$file;
    12. echo "<a href=\"index.php?ord=".$ord."\">".$file."</a><br/>";
    13. }
    14. if(!is_dir($ordner."/".$file)) { //und wenn es kein ordner ist...
    15. $dat = $ordner."/".$file;
    16. echo "<a href=\"".$dat."\">".$file."</a><br/>";
    17. }
    18. }
    19. }
    20. closedir($handle); //der letzte macht die tür zu
    21. ?>
    Alles anzeigen


    ------------ edit --------------

    mir viel gerade auf das ich die datein die ich testweise hochgeladen habe ja auch irgendwann löschen müsste und da hab ich die paar zeilen auch gerade noch mit reingenommen (aber nur dateien ordner ist etwas schwerer).

    PHP-Quellcode

    1. <?php
    2. if(!isset($_GET['ord'])) { //wenn getvariable ord nicht existiert
    3. $ordner = "."; //variable ordner auf . setzen
    4. } else { //anderenfalls
    5. $ordner = $_GET['ord']; //variable ordner auf die getvariable ord setzen
    6. }
    7. if(isset($_GET['unlink'])) { //wenn getvariable unlink gesetzt ist
    8. unlink($_GET['unlink']);
    9. }
    10. $handle = opendir($ordner);
    11. while ($file = readdir ($handle)) { //solange es dateien im ordner gibt
    12. if($file != "." && $file != "index.php") { // zumindest wenn die datei nicht . oder index.php heißt
    13. if(is_dir($ordner."/".$file)) { //und ein ordner ist...
    14. $ord = $ordner."/".$file;
    15. echo "<a href=\"index.php?ord=".$ord."\">".$file."</a><br/>";
    16. }
    17. if(!is_dir($ordner."/".$file)) { //und wenn es kein ordner ist...
    18. $dat = $ordner."/".$file;
    19. echo "<a href=\"".$dat."\">".$file."</a> <a href=\"index.php?ord=".$ordner."&unlink=".$dat."\">REMOVE</a><br/>";
    20. }
    21. }
    22. }
    23. closedir($handle); //der letzte macht die tür zu
    24. ?>
    Alles anzeigen
    Signatur entsprach nicht den Boardregeln.
    ->gelöscht by lukas2004
  • mortician schrieb:

    hi
    also ich fang schonma an... editier dann heut abend:
    ...
    rest folgt .. ^^


    purx schrieb:

    mortician, is jetzt nicht dein ernst oder?
    Was es net alles gibt


    hey ... lass ihn doch!! is doch ein echt cooler zug von ihm!! RESPEKT!!

    BTW: wuerde mir die datenbank sparen ... einfach die dateien aus dem filesystem auslesen ... evtl. wuerde ich zu der datei noch ne *.txt anlegen mit zusatzinfos, die der upper eintragen kann!! das erspart die ne menge arbeit und das ganze laeuft dann auch noch auf servern ohne DB!!

    ceeyaa.mex
  • sers
    ich habs im nachhinain auch gemerkt... total verplant ^^

    weiss nich wie ich auch ne db gekommn bin, wenns um upload/downloadcenter mit ordner und dateien aufm server geht ^^

    dann lass ichs halt :P

    wollts eig aus übung machn... aber mach du menn ^

    edit

    nu kommt das uploadsystem. die upgeloadete datei geht imma in den ordner, der auch gerade angezeigt wird.

    PHP-Quellcode

    1. <?
    2. function scriptname() { // gibt aktuellen Scriptnamen zurück
    3. return substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],"/")+1);
    4. }
    5. if (!empty($_GET['ord'])) { // falls GET-Variable vorhanden
    6. $ordner = $_GET['ord'];
    7. } else { // falls nicht, Standard-Ordner setzen
    8. $ordner = ".";
    9. }
    10. if (!is_dir($ordner."/")) { // falls gesetzter Ordner nicht existiert
    11. echo "Ordner existiert nicht!";
    12. } else {
    13. if (!isset($_FILES['file']['tmp_name'])) { // falls kein File-Upload erfolgte
    14. $handle = opendir($ordner."/"); // handle setzen
    15. # Formular
    16. echo "<form action=\"".scriptname()."?ord=".$_GET['ord']."\" method=\"post\" enctype=\"multipart/form-data\">",
    17. "<input type=\"file\" name=\"file\"> <br \>",
    18. "<input type=\"submit\" name=\"submit\" value=\"Upload...\">",
    19. "</form>";
    20. while ($file = readdir($handle)) {
    21. if ($file != "." && $file != scriptname()) {
    22. if (is_dir($ordner."/".$file)) { // Wenn "Datei" ein Ordner ist
    23. $ord = $ordner."/".$file;
    24. echo "<a href=\"".scriptname()."?ord=".$ord."\">".$file."</a><br \>";
    25. } else {
    26. echo "<a href=\"".$ordner."/".$file."\">".$file."</a><br \>";
    27. }
    28. }
    29. }
    30. closedir($handle);
    31. } else {
    32. move_uploaded_file($_FILES['file']['tmp_name'],$ordner."/".$_FILES['file']['name']);
    33. header("Location: ".scriptname()."?ord=".$_GET['ord']);
    34. }
    35. }
    36. ?>
    Alles anzeigen


    ´gruß
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • MeX schrieb:

    hey ... lass ihn doch!! is doch ein echt cooler zug von ihm!! RESPEKT!!



    Jaja klar, habs ja nicht so gemeint. Ich meinte nur, dass ich mir den Aufwand nicht machen würde das hier im Forum auszutragen. Aber: jedem das seine...
    [SIZE=1]"There's no right, there's no wrong, there's only popular opinion." Jeffrey Goines (Brad Pitt) in Twelve Monkeys[/SIZE]

    [SIZE=1]$ killall chico[/SIZE]
  • Erst ma einganz großes Dank an alle
    und an Mortician weiter so helf Voll-Noobs wie mir:thx:
    Nur ich merke immer mehr WIE wenig Plan ich hab.
    Okay ich bin vielleicht einfach zu dumm aber kann mir noch jmd. sagen wie ich die geposteten Quelltexte editieren muss damit es funzt also wo ich meine Daten evtl. irgendwie eintragen muss weil so funzt es nich ich kann keine Daten herunterladen oder löschen und wenn ich uppe kommt ne fehlermeldung...
    MFG Rains :(
  • Sers

    Tu ich doch gern :P

    Nu zu deiner "Installation" des Scriptes

    Du erstellst eine php-datei mit namen xy.php (egal was) und beinhaltest die folgendermaßen:

    PHP-Quellcode

    1. <?
    2. function scriptname() { // gibt aktuellen Scriptnamen zurück
    3. return substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],"/")+1);
    4. }
    5. if (!empty($_GET['ord'])) { // falls GET-Variable vorhanden
    6. $ordner = $_GET['ord'];
    7. } else { // falls nicht, Standard-Ordner setzen
    8. $ordner = ".";
    9. }
    10. if (!is_dir($ordner."/")) { // falls gesetzter Ordner nicht existiert
    11. echo "Ordner existiert nicht!";
    12. } else {
    13. if (!isset($_FILES['file']['tmp_name'])) { // falls kein File-Upload erfolgte
    14. $handle = opendir($ordner."/"); // handle setzen
    15. # Formular
    16. echo "<form action=\"".scriptname()."?ord=".$_GET['ord']."\" method=\"post\" enctype=\"multipart/form-data\">",
    17. "<input type=\"file\" name=\"file\"> <br \>",
    18. "<input type=\"submit\" name=\"submit\" value=\"Upload...\">",
    19. "</form>";
    20. while ($file = readdir($handle)) {
    21. if ($file != "." && $file != scriptname()) {
    22. if (is_dir($ordner."/".$file)) { // Wenn "Datei" ein Ordner ist
    23. $ord = $ordner."/".$file;
    24. echo "<a href=\"".scriptname()."?ord=".$ord."\">".$file."</a><br \>";
    25. } else {
    26. echo "<a href=\"".$ordner."/".$file."\">".$file."</a><br \>";
    27. }
    28. }
    29. }
    30. closedir($handle);
    31. } else {
    32. move_uploaded_file($_FILES['file']['tmp_name'],$ordner."/".$_FILES['file']['name']);
    33. header("Location: ".scriptname()."?ord=".$_GET['ord']);
    34. }
    35. }
    36. ?>
    Alles anzeigen


    Die Variable $ordner = "."; gibt den Standart-Ordner an, welcher geöffnet wird, wenn der User noch keinen Unterordner angeklickt hat.

    Diese Variable musste im Script ändern, der Rest ist automatisch und funzt soweit auch.

    Das mitm Removen von Files habn wir noch nicht realisiert.

    Editier ich dir nachher.

    ´gruß
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • Hey... Ich habe sowas auch schonmal gemacht... guckt euch mal meinen Code an. Das ist ein gutes System dafür ;). Ist zwar net sehr professionell
    und hat noch so die ein oder anderen Macken... aber die kann man ja
    ausmerzen.

    PHP-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <? $starttime = microtime(); ?>
    6. <title>HTTP Upload</title>
    7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    8. <style type="text/css">
    9. body {font-family:sans-serif;font-size:12px;color:#333333;background-image:url(bg.gif);}
    10. .td {font-family:sans-serif;font-size:12px;color:#333333;background-color:#FFFFFF;border:1px solid #999999;}
    11. a:active {font-family:sans-serif;font-size:12px;color:#333333;background-color:#FFFFFF;text-decoration:none;}
    12. a:visited {font-family:sans-serif;font-size:12px;color:#333333;background-color:#FFFFFF;text-decoration:none;}
    13. a:link {font-family:sans-serif;font-size:12px;color:#333333;background-color:#FFFFFF;text-decoration:none;}
    14. a:hover {font-family:sans-serif;font-size:12px;color:#333333;background-color:#FFFFFF;text-decoration:none;}
    15. </style>
    16. </head>
    17. <?
    18. $rootdir = "./upload/";
    19. $folders = array();
    20. $files = array();
    21. $dir = $HTTP_GET_VARS['dir'];
    22. $dlfile = base64_decode($HTTP_GET_VARS['dl']);
    23. $dir = base64_decode($dir);
    24. $name=$HTTP_SERVER_VARS['SCRIPT_NAME'];
    25. $pos = strrpos($name, "/")+1;
    26. $script = substr($name,$pos,strlen($name).".php");
    27. $imgfolder="folder.gif";
    28. $imgfolderup="folderup.gif";
    29. $imgfile="file.gif";
    30. $fp = @opendir($rootdir.$dir);
    31. while(false !== ($file = readdir($fp))) {
    32. if ($file != "." && $file != ".." && $file != $script) {
    33. if(is_dir($rootdir.$dir."/".$file))
    34. array_push($folders, $file);
    35. elseif(is_file($rootdir.$dir."/".$file))
    36. array_push($files, $file);
    37. }
    38. }
    39. ?>
    40. <body><center>
    41. <table width="600px" style="background-color:#E6E6E6; border:1px solid #999999;">
    42. <tr><td><img src="banner.gif">
    43. <table width="590px">
    44. <tr>
    45. <td align="left" class="td" height="50px" colspan="2">
    46. &nbsp;<b>Create a new Folder:</b>
    47. <form action="<? $PHP_SELF; ?>" method="post">
    48. &nbsp;<input type="text" size="25" name="cfol">&nbsp;
    49. <input type="submit" name="csub" value="Create Folder">
    50. </form>
    51. <? if(isset($_REQUEST['csub']) && !empty($_REQUEST['cfol'])) {
    52. $cfolstat=mkdir($rootdir.$dir.$_REQUEST['cfol']."/", 0777);
    53. if(!$cfolstat) {
    54. print "&nbsp;<font color=red><b>Cannot create Folder</b></font>";
    55. } else {
    56. print "&nbsp;<font color=green><b>Folder created successfully</b></font>";
    57. header("Location: ".$script."?dir=".base64_encode($dir));
    58. }
    59. $cstat="1";
    60. } ?>
    61. </td>
    62. </tr>
    63. <tr>
    64. <td align="left" class="td" height="50px" colspan="2">
    65. &nbsp;<b>Select your Uploadfile</b>
    66. <form action="<? $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
    67. &nbsp;<input type="file" size="50" name="ufile">
    68. <input type="submit" value="Upload" name="upsub">
    69. </form>
    70. <? if (isset($_FILES['ufile']) && !$_FILES['ufile']['error']){
    71. $directory = $rootdir.$dir;
    72. $rawfilename = $_FILES['ufile']['name'];
    73. $filename = str_replace(" ", "_", $rawfilename);
    74. move_uploaded_file($_FILES['ufile']['tmp_name'], $directory.$filename);
    75. header("Location: ".$script."?dir=".base64_encode($dir));
    76. $ufsize=filesize($directory.$filename) / 1000000;
    77. $unew="1";
    78. } ?>
    79. </td>
    80. </tr>
    81. <tr>
    82. <td align="center" class="td" width="75"><?php print "<a href=".$script."><img src=$imgfolderup border=0>&nbsp;<b>ROOT</b></a>"?></td>
    83. <td align="left" class="td"><? print "<b><img src=".$imgfolder." border=0>&nbsp;/".$dir; ?></b></td>
    84. </tr>
    85. <tr>
    86. <td align="left" class="td" colspan="2">
    87. <table width="590px">
    88. <form action="<? $PHP_SELF; ?>" method="post">
    89. <?
    90. function hsize($size) {
    91. $count = 0; $format = array("Byte","KByte","MByte","GB","TByte","PByte","EByte","ZByte","YByte");
    92. while(($size/1024) > 1 && $count < 8) {
    93. $size = $size / 1024; $count++;
    94. }
    95. $return = "<b>".number_format($size,0,'','.')."</b> <font color=blue>".$format[$count]."</font>";
    96. return $return;
    97. }
    98. foreach($folders as $list_folders) {
    99. $link_folders = $list_folders;
    100. print "<tr><td width=15><input type=checkbox value=".$list_folders." name=chkfol[]></td><td colspan=2 align=left><a href=".$script."?dir=".base64_encode($dir.$link_folders."/")."><img src=$imgfolder border=0>&nbsp;".$list_folders."</a></td></tr>";
    101. }
    102. foreach($files as $list_files) {
    103. $link_files = $list_files;
    104. $fsize = filesize($rootdir.$dir.$list_files);
    105. $pathparts=pathinfo($rootdir.$dir.$list_files);
    106. $ext=$pathparts['extension'];
    107. $imgfiles=$imgfile;
    108. if($ext=="txt" || $ext=="doc" || $ext=="xls") $imgfiles="txt.gif";
    109. elseif($ext=="png" || $ext=="gif" || $ext=="jpg" || $ext=="bmp") $imgfiles="img.gif";
    110. elseif($ext=="psd") $imgfiles="psd.gif";
    111. elseif($ext=="zip") $imgfiles="zip.gif";
    112. elseif($ext=="rar") $imgfiles="rar.gif";
    113. elseif($ext=="exe") $imgfiles="exe.gif";
    114. print "<tr><td width=15><input type=checkbox value=".$list_files." name=chkfile[]></td><td align=left><a href=".$rootdir.$dir.$link_files."><img src=$imgfiles border=0>&nbsp;".$list_files."</a></td><td align=right>".hsize($fsize)."</td></tr>";
    115. }
    116. ?>
    117. </table>
    118. </td>
    119. </tr>
    120. </table>
    121. &nbsp;&nbsp;&nbsp;&nbsp;<b>└</b>&nbsp;<input type="submit" value="Delete" name="delsub" style="background-color:#F6F6F6; border:1px solid #666666; font-family:verdana; font-size:9px; color:#333333;">
    122. </form></td>
    123. </tr>
    124. </table>
    125. <br><font color="#999999"><b>&copy; R4V3SH0W 2oo6</b><br>
    126. <?
    127. if(!empty($_REQUEST['chkfol']) || !empty($_REQUEST['chkfile'])) {
    128. if(isset($_REQUEST['chkfol'])) {
    129. foreach($_REQUEST['chkfol'] as $delfol) {
    130. rmdir($rootdir.$dir.$delfol);
    131. }
    132. header("Location: ".$script."?dir=".base64_encode($dir));
    133. }
    134. if(isset($_REQUEST['chkfile'])) {
    135. foreach($_REQUEST['chkfile'] as $delfile) {
    136. unlink($rootdir.$dir.$delfile);
    137. }
    138. header("Location: ".$script."?dir=".base64_encode($dir));
    139. }
    140. }
    141. $endtime = microtime(); $loadtime = $endtime - $starttime; print "Script loaded in:&nbsp;<b>". $loadtime ."</b>&nbsp;Seconds";
    142. ?></font>
    143. </center></body>
    144. </html>
    Alles anzeigen


    Wer die .GIF Dateien haben möchste schreibt mir einfach ne PN... Dann schicke ich ihm die ;)

    mfg rave