Download und Uploadcenter

  • Ersteller Ersteller Rainis
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
R

Rainis

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ß
 
Ich habe ein Verzeichnis /intern welches mit .htacess geschützt is
 
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
 
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:
$sql_host = "localhost"; // Standart:localhost
$sql_user = "user";
$sql_pw = "pw";
$sql_data = "data";
$sql_table = "uploadcenter"; // Einfach lassen

$sql_con = mysql_connect ($sql_host,$sql_user,$sql_pw) OR die("SQL Verbindung fehlgeschlagen");
$sql_sel = mysql_select_db ($sql_data,$sql_con) OR die("SQL-Datenbankauswahl fehlgeschlagen");
$root_dir = "dir/"; // Hauptverzeichnis, in denen User uploaden / downloaden und Ordner hinzufügen können

....


rest folgt .. ^^

´gruß
 
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:
 
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:
if(!isset($_GET['ord'])) { //wenn getvariable ord nicht existiert
$ordner = "."; //variable ordner auf . setzen
} else { //anderenfalls
$ordner = $_GET['ord']; //variable ordner auf die getvariable ord setzen
}

$handle = opendir($ordner);
while ($file = readdir ($handle)) { //solange es dateien im ordner gibt
if($file != "." && $file != "index.php") { // zumindest wenn die datei nicht . oder index.php heißt
if(is_dir($ordner."/".$file)) { //und ein ordner ist...
$ord = $ordner."/".$file;
echo "[URL='https://finale.freesoft-board.to/\"index.php?ord=".$ord."\"']".$file."[/URL]
";
}
if(!is_dir($ordner."/".$file)) { //und wenn es kein ordner ist...
$dat = $ordner."/".$file;
echo "[URL='https://finale.freesoft-board.to/\"".$dat."\"']".$file."[/URL]
";
}
}
}

closedir($handle); //der letzte macht die tür zu
?>

------------ 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:
if(!isset($_GET['ord'])) { //wenn getvariable ord nicht existiert
$ordner = "."; //variable ordner auf . setzen
} else { //anderenfalls
$ordner = $_GET['ord']; //variable ordner auf die getvariable ord setzen
}

if(isset($_GET['unlink'])) { //wenn getvariable unlink gesetzt ist
unlink($_GET['unlink']);
}

$handle = opendir($ordner);
while ($file = readdir ($handle)) { //solange es dateien im ordner gibt
if($file != "." && $file != "index.php") { // zumindest wenn die datei nicht . oder index.php heißt
if(is_dir($ordner."/".$file)) { //und ein ordner ist...
$ord = $ordner."/".$file;
echo "[URL='https://finale.freesoft-board.to/\"index.php?ord=".$ord."\"']".$file."[/URL]
";
}
if(!is_dir($ordner."/".$file)) { //und wenn es kein ordner ist...
$dat = $ordner."/".$file;
echo "[URL='https://finale.freesoft-board.to/\"".$dat."\"']".$file."[/URL] [URL='https://finale.freesoft-board.to/\"index.php?ord=".$ordner."&unlink=".$dat."\"']REMOVE[/URL]
";
}
}
}

closedir($handle); //der letzte macht die tür zu
?>
 
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:
function scriptname() { // gibt aktuellen Scriptnamen zurück
return substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],"/")+1);
}
if (!empty($_GET['ord'])) { // falls GET-Variable vorhanden
$ordner = $_GET['ord'];
} else { // falls nicht, Standard-Ordner setzen
$ordner = ".";
}
if (!is_dir($ordner."/")) { // falls gesetzter Ordner nicht existiert
echo "Ordner existiert nicht!";
} else {
if (!isset($_FILES['file']['tmp_name'])) { // falls kein File-Upload erfolgte

$handle = opendir($ordner."/"); // handle setzen

# Formular
echo "
",
" 
",
"",
"
";

while ($file = readdir($handle)) {
if ($file != "." && $file != scriptname()) {
if (is_dir($ordner."/".$file)) { // Wenn "Datei" ein Ordner ist
$ord = $ordner."/".$file;
echo "[URL='https://finale.freesoft-board.to/\"".scriptname()."?ord=".$ord."\"']".$file."[/URL]
";
} else {
echo "[URL='https://finale.freesoft-board.to/\"".$ordner."/".$file."\"']".$file."[/URL]
";
}
}
}
closedir($handle);
} else {
move_uploaded_file($_FILES['file']['tmp_name'],$ordner."/".$_FILES['file']['name']);
header("Location: ".scriptname()."?ord=".$_GET['ord']);
}
}
?>

´gruß
 
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...
 
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:
function scriptname() { // gibt aktuellen Scriptnamen zurück
return substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],"/")+1);
}
if (!empty($_GET['ord'])) { // falls GET-Variable vorhanden
$ordner = $_GET['ord'];
} else { // falls nicht, Standard-Ordner setzen
$ordner = ".";
}
if (!is_dir($ordner."/")) { // falls gesetzter Ordner nicht existiert
echo "Ordner existiert nicht!";
} else {
if (!isset($_FILES['file']['tmp_name'])) { // falls kein File-Upload erfolgte

$handle = opendir($ordner."/"); // handle setzen

# Formular
echo "
",
" 
",
"",
"
";

while ($file = readdir($handle)) {
if ($file != "." && $file != scriptname()) {
if (is_dir($ordner."/".$file)) { // Wenn "Datei" ein Ordner ist
$ord = $ordner."/".$file;
echo "[URL='https://finale.freesoft-board.to/\"".scriptname()."?ord=".$ord."\"']".$file."[/URL]
";
} else {
echo "[URL='https://finale.freesoft-board.to/\"".$ordner."/".$file."\"']".$file."[/URL]
";
}
}
}
closedir($handle);
} else {
move_uploaded_file($_FILES['file']['tmp_name'],$ordner."/".$_FILES['file']['name']);
header("Location: ".scriptname()."?ord=".$_GET['ord']);
}
}
?>

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ß
 
ich würde meinen popo drauf verwetten das das uploaden nicht klappt weil die ordnerrechte nicht richtig gesetzt wurden einfach mal die ordnerrechte auf 777 setzen
 
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:
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">







$rootdir = "./upload/";
$folders = array();
$files = array();
$dir = $HTTP_GET_VARS['dir'];
$dlfile = base64_decode($HTTP_GET_VARS['dl']);
$dir = base64_decode($dir);

$name=$HTTP_SERVER_VARS['SCRIPT_NAME'];
$pos = strrpos($name, "/")+1;
$script = substr($name,$pos,strlen($name).".php");

$imgfolder="folder.gif";
$imgfolderup="folderup.gif";
$imgfile="file.gif";

$fp = @opendir($rootdir.$dir);
while(false !== ($file = readdir($fp))) {
if ($file != "." && $file != ".." && $file != $script) {
if(is_dir($rootdir.$dir."/".$file))
array_push($folders, $file);
elseif(is_file($rootdir.$dir."/".$file))
array_push($files, $file);
}
}
?>

[TABLE]

[TR]
[td][IMG]https://finale.freesoft-board.to/banner.gif[/IMG]
[TABLE]

[TR]

[LEFT][td][LEFT]
 [B]Create a new Folder:[/B]

  


 $cfolstat=mkdir($rootdir.$dir.$_REQUEST['cfol']."/", 0777);
if(!$cfolstat) {
print " [COLOR=red][B]Cannot create Folder[/B][/COLOR]";
} else {
print " [COLOR=green][B]Folder created successfully[/B][/COLOR]";
header("Location: ".$script."?dir=".base64_encode($dir));
}
$cstat="1";
} ?>[/LEFT][/td][/LEFT]

[/TR]

[TR]

[LEFT][td][LEFT]
 [B]Select your Uploadfile[/B]

 


 $directory = $rootdir.$dir;
$rawfilename = $_FILES['ufile']['name'];
$filename = str_replace(" ", "_", $rawfilename);
move_uploaded_file($_FILES['ufile']['tmp_name'], $directory.$filename);
header("Location: ".$script."?dir=".base64_encode($dir));
$ufsize=filesize($directory.$filename) / 1000000;
$unew="1";
} ?>[/LEFT][/td][/LEFT]

[/TR]

[TR]

[CENTER][td][CENTER][IMG]https://finale.freesoft-board.to/$imgfolderup[/IMG] [B]ROOT[/B]"?>[/CENTER][/td][/CENTER]
[LEFT][td][LEFT][IMG]https://finale.freesoft-board.to/.$imgfolder.[/IMG] /".$dir; ?>[/LEFT][/td][/LEFT]
[/TR]

[TR]

[LEFT][td][LEFT]
[TABLE]


 function hsize($size) {
$count = 0; $format = array("Byte","KByte","MByte","GB","TByte","PByte","EByte","ZByte","YByte");
while(($size/1024) > 1 && $count < 8) {
$size = $size / 1024; $count++;
} 
$return = "[B]".number_format($size,0,'','.')."[/B] [COLOR=blue]".$format[$count]."[/COLOR]";
return $return;
}

foreach($folders as $list_folders) {
$link_folders = $list_folders;
print "
[TR]
[LEFT][td][LEFT][URL='https://finale.freesoft-board.to/.$script.']").">[IMG]https://finale.freesoft-board.to/$imgfolder[/IMG] ".$list_folders."[/URL][/LEFT][/td][/LEFT]
[/TR]
";
}
foreach($files as $list_files) {
$link_files = $list_files;
$fsize = filesize($rootdir.$dir.$list_files);
$pathparts=pathinfo($rootdir.$dir.$list_files);
$ext=$pathparts['extension'];
$imgfiles=$imgfile;
if($ext=="txt" || $ext=="doc" || $ext=="xls") $imgfiles="txt.gif";
elseif($ext=="png" || $ext=="gif" || $ext=="jpg" || $ext=="bmp") $imgfiles="img.gif";
elseif($ext=="psd") $imgfiles="psd.gif";
elseif($ext=="zip") $imgfiles="zip.gif";
elseif($ext=="rar") $imgfiles="rar.gif";
elseif($ext=="exe") $imgfiles="exe.gif";
print "
[TR]
[LEFT][td][LEFT][URL='https://finale.freesoft-board.to/.$rootdir.$dir.$link_files.'][IMG]https://finale.freesoft-board.to/$imgfiles[/IMG] ".$list_files."[/URL][/LEFT][/td][/LEFT][RIGHT][td][RIGHT]".hsize($fsize)."[/RIGHT][/td][/RIGHT]
[/TR]
";
}
?>
[/TABLE]
[/LEFT][/td][/LEFT]

[/TR]

[/TABLE]

    [B]└[/B] [COLOR=#333333][SIZE=1][FONT=verdana][/FONT][/SIZE][/COLOR][/td]

[/TR]

[/TABLE]


[COLOR=#999999][B]© R4V3SH0W 2oo6[/B]

 if(!empty($_REQUEST['chkfol']) || !empty($_REQUEST['chkfile'])) {
if(isset($_REQUEST['chkfol'])) {
foreach($_REQUEST['chkfol'] as $delfol) {
rmdir($rootdir.$dir.$delfol);
}
header("Location: ".$script."?dir=".base64_encode($dir));
}
if(isset($_REQUEST['chkfile'])) {
foreach($_REQUEST['chkfile'] as $delfile) {
unlink($rootdir.$dir.$delfile);
}
header("Location: ".$script."?dir=".base64_encode($dir));
}
}
$endtime = microtime(); $loadtime = $endtime - $starttime; print "Script loaded in: [B]". $loadtime ."[/B] Seconds";
?>[/COLOR]

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

mfg rave
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten