[php] File Upload script - hochgeladener Link verschlüsseln und automatisch löschen

staybb

Neuling
Thread Starter
Mitglied seit
28.11.2010
Beiträge
124
Hallo ,

ich habe ein File Send Script mit php im Einsatz.
Es lädt eine ausgewählte Datei auf mein Webspace und spuckt anschließend den hochgeladenen Link aus.

Der Link ist das Zielverzeichnis zu meinem Webspace wo sich die hochgeladene Datei befindet.

Nun möchte ich diesen Link automatisch nach Upload verschlüsseln lassen.

Außerdem möchte ich noch zusätzlich in das Script einbauen, dass der man festlegen kann wielange der Link online sein soll und danach nach der eingestellten Zeit automatisch gelöscht wird.

Hier ist der komplette Code der denk Link nach dem Upload erstellt:


Code:
/* 
  ============================================
  ========= Filesharing Script V 1.42 ========
  ============================================
  
   Script by Sebastian-Fuss
   www.sebastian-fuss.de.vu
   Support: SFuss@gmx.net
  

==========================================================
====== An dieser Datei am besten nichts verändern!! ======
==========================================================
== Einstellungen können Sie in der config.php vornehmen ==
==========================================================

 */
 require_once("config.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="author" content="Coded by Sebastian Fuss (www.sebastian-fuss.de.vu)">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php if ($title!=""){echo $title;}else{echo "File Sharing";}?></title>
  <style type="text/css">
  /* <![CDATA[ */
  
a{
color:#3C86D1;
text-decoration:none;
}
a:hover{
color:#0067CE;
text-decoration:underline;
}

  /* ]]> */
  </style>
  
<script type="text/javascript">
function go(){

document.getElementById("load").style.display="inline";
}
</script>
</head>
<body>
<table border=0 align=center>
 <tr>
  <td>
  <?php if($title!=""){echo "<h1>$title</h1>";}?>
  <?php
#Hier gehts raus, falls eine Datei gelöscht werden soll.
if (isset($_GET['action'])){
if ($_GET['action']=="unlink"){

if (is_dir("$ordner/".$_GET['file'])){
if ($indexfile){
 $datei = "$ordner/".$_GET['file']."/index.php"; // Name der Datei
 }else{
  $datei = "$ordner/".$_GET['file']."/safety.php"; // Name der Datei
 }
 require_once($datei); //Datei wird eingelesen
 if ($code==$_GET['code']){

$verzeichnis = openDir("$ordner/".$_GET['file']); 
while ($file = readDir($verzeichnis)) {
 if ($file != "." && $file != "..") { 
 #Jede Datei im Verzeichniss wird gelöscht
  unlink("$ordner/".$_GET['file']."/$file");
 }
}
closeDir($verzeichnis); // Verzeichnis schließen
#Dann wird das Verzeichnis gelöscht (geht nur, wenn es leer ist)
rmdir("$ordner/".$_GET['file']);
#Überprüfung ob das Verzeichnis noch da ist
if (!is_dir("$ordner/".$_GET['file'])){
#Falls nicht, konnte es gelöscht werden und alle Dateien darin auch
#Ausgabe des Textes
echo "<h3><font color=red>Datei erfolgreich gelöscht.</font></h3>";}

}else{
echo "<h3><font color=red>Der Sicherheits-Code ist falsch!</font></h3>";
}
}else{
echo "<h3><font color=red>Die Datei ist nicht (mehr) vorhanden.</font></h3>";
}
}
}
?>
   <h3>Datei-Upload</h3>
  </td>
 </tr>
 <tr>
  <td>
   <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
    Datei: <input name="datei" type="file"> <input type="submit" name="loadup" value="Upload" <?php if(!$load_icon==""){ echo 'onclick="go();"';}?>><br />
    <?php if ($show_max_size){ echo "<small style=\"float:right;\">Max. $max_size MB</small>";}
   echo "<small>";
   if ($show_allowed_ext){ 
    if ($only_some_filetypes==0){ echo "Alle Dateitypen erlaubt";}
    if ($only_some_filetypes==1){ echo "Folgende Dateitypen sind erlaubt: $extensions";}
    if ($only_some_filetypes==2){ echo "Folgende Dateitypen sind <b>nicht</b> erlaubt: $extensions";}
    }
    if($show_ip_log){
    echo "<br />Ihre IP-Adresse wird bei einem Upload gespeichert!";
    }
    echo "</small>";
     ?>
    </form>
   
    <?php 
     if(!$load_icon==""){ ?>
    <center><img src="<?php echo $load_icon;?>" id="load" style="display: none;" alt="Upload läuft..." ></center>
  <?php } ?>
  </td>
 </tr>

</table>
<table border=0 align=center>
  <colgroup>
    <col width="50%">
    <col width="50%">
  </colgroup>

 <tr>
  <td>
<?php
 # Original Script © Homepage-Total.de
 # Moded by Sebastian-Fuss.de.vu
if (isset($_POST['loadup'])){
if($_FILES["datei"]["name"] == "") {
    echo "<font color=red><h3>Keine Datei übertragen.</h3></font>"; 
 
}else{

if($_FILES["datei"]["tmp_name"] == "") {
    echo "<font color=red><h3>Fehler bei der Übertragung, ist die Datei zu groß?</h3></font>"; 
 
}else{

if($_FILES["datei"]["size"] == 0) {
  echo "<font color=red><h3>Leere Datei!</h3></font>";

}else{
// Überprüfen der Dateiendung
if ($only_some_filetypes!=0){
// Dateiendung herausfinden, falls nicht es alles erlaubt ist
$ext=explode(".",$_FILES["datei"]["name"]);
$endung=$ext[count($ext)-1];
}
if ($only_some_filetypes==1 && strpos($extensions,$endung)!==FALSE || $only_some_filetypes==2 && strpos($extensions,$endung)===FALSE || $only_some_filetypes==0){

if ($_FILES["datei"]["size"]<($max_size*1048576)){

#Generieren des Ordnernames
if ($folder_type==1){
$folder=time(); 
}else{
$folder= substr(md5 (uniqid (rand())),0,8);
}
#Erstellen des Ordners "uploads", falls er nicht vorhanden ist
if(!is_dir("$ordner/")){
mkdir("$ordner/",0777);
}
//Falls der Ordner mit dem selben Namen bereits vorhanden ist, wird ein zufälliger Wert angehängt
if(is_dir("$ordner/$folder")){
$folder=$folder.mt_rand(0,10);
}
#erstellen des Ordners, in den der Upload hinein soll
if(mkdir("$ordner/".$folder,0777)){
#Hier gehts weiter, falls der Ordner erstellt wurde
#Upload
move_uploaded_file($_FILES["datei"]["tmp_name"],
                   "$ordner/$folder/".$_FILES["datei"]["name"]);
#Upload Datei Rechte setzen
@chmod("$ordner/$folder/".$_FILES["datei"]["name"], 0777);
#Ausgabe der "Upload erfolgreich"-Meldung
echo "<font color=red><h3>Datei <i>".$_FILES["datei"]["name"]."</i> erfolgreich übertragen.</h3></font>";
# Anti-List-Folder-Index Datei kopieren
if ($indexfile){
$dateiname = "$ordner/$folder/index.php"; // Name der Datei
}else{
$dateiname = "$ordner/$folder/safety.php"; // Name der Datei
}
$code=substr(md5 (uniqid (rand())),0,12);
$text = '<?php'; // Dateiinhalt
$text .= "\n"; // Dateiinhalt
$text .= ' $code="'.$code.'";'; // Dateiinhalt
if ($log_ip){
$text .= "\n"; // Dateiinhalt
$text .= ' $ip="'.$_SERVER['REMOTE_ADDR'].'";'; // Dateiinhalt
}
$text .= "\n ?"; // Dateiinhalt
$text .= '>'; // Dateiinhalt
$handler = fOpen($dateiname , "w+"); // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
fWrite($handler , $text); // Dateiinhalt in die Datei schreiben
fClose($handler); // Datei schließen

#Ausgabe der Zwei Links
?>
  </td>
 </tr>
<tr>
<td align="center"><a href="<?php echo dirname($_SERVER['PHP_SELF'])."/$ordner/$folder/".$_FILES["datei"]["name"];?>" />Download <?php echo $_FILES["datei"]["name"];?></a></td>
<?php if ($show_delete){ ?>
<td align="center"><a href="<?php echo $_SERVER['PHP_SELF']."?action=unlink&file=$folder&code=".$code;?>" >Löschen</A></td>
<?php } ?></tr>
<?php if (!$show_only_links){ ?>
<tr>
<td><textarea style="width:100%;" rows="3" readonly >http://<?php echo $_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF'])."/$ordner/$folder/".$_FILES["datei"]["name"];?></Textarea></td>
<?php if ($show_delete){ ?>
<td><textarea style="width:100%;" rows="3" readonly >http://<?php echo $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?action=unlink&file=$folder&code=".$code; ?></Textarea></td>
<?php } ?>
</tr>

<?php
}

}else{
#Ausgabe der Fehlermeldung, falls der Ordner nicht erstellt werden konnte
echo "<h3><font color=red>Fehler beim erstellen des Ordners!</font></h3>";

}
}else{
echo "<h3><font color=red>Diese Datei (".round(($_FILES["datei"]["size"]/1048576),2)." MB) ist zu groß!</font></h3>";
}
}else{
echo "<h3><font color=red>Dieser Dateityp ($endung) ist nicht erlaubt!</font></h3>";
}
}
}
}
}
?>
</table>
 <?php if ($show_adm_link){ ?>
<p  style="text-align:center;"><small><a href="<?php echo $adminphp;?>" >Admin Login</a></small></p>
<?php
}
?>
</body>
</html>
Wie kann ich das realisieren?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Nun möchte ich diesen Link automatisch nach Upload verschlüsseln lassen.

du meinst du willst nen link ala download.php?hfui3275zfsdhs erstellen statt dem direkten Link zur Datei?

simpel: datei unter dem kürzel ( für das beispiel oben ) hfui3275zfsdhs abspeichern. dann beim aufruf der download.php einfach die Datei hfui3275zfsdhs öffnen per php, den passenden header senden und dann den dateinhalt ausgeben

howto findest du bei google unter download script

Außerdem möchte ich noch zusätzlich in das Script einbauen, dass der man festlegen kann wielange der Link online sein soll und danach nach der eingestellten Zeit automatisch gelöscht wird.

könntest vor den Dateinamen noch das ablaufdatum schreiben beim abspeichern der datei. dann in der download.php den anfang des dateinamens auslesen und als datum casten. wenn dann das aktuelle datum größer als das ablaufdatum ist löscht du die datei und gibst nen fehler aus.

müsstest dann aber noch nen cronjob laufen lassen der alle abgelaufenen dateien löscht da sie sonst ja solange online bleiben bis mal jemand nen abgelaufenen link anklickt

kannste einfach realisieren indem du ne cron.php anlegst und dann Cronjob.de - Kostenlose Cronjobs und Crontab es täglich aufrufen lässt.

optimaler wär natürlich ne Umsetzung mit Datenbank da du dann auch Ablaufzeiten dynamisch ändern könntest etc.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh