Nur bestimmte Sachen uploaden.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
bild
code
copyright
date
datei
dateiformat
datum
email
extension
file
grafik
header
helfen
http
inhalt
ordner
pfad
server
typ
-
Hallo Leute,
Ich habe ein Upload Script gemacht.
Aber ich möchte ,das er nur bestimmte Dateien hochlädt.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title><?php print ("$PageTitle"); ?></title> <body> <?php if ($File) { print ("File name: $File_name<P>\n"); print ("File size: $File_size<P>\n"); if (copy ($File, "upload/$File_name")) { print ("deine Datei wurde erfolgreich hochgeladen!<P>\n"); } else { print ("Datei konnte nicht hochgeladen werden.<P>\n"); } unlink ($File); } print ("Dateien zum Server hochgeladen:\n"); print ("<FORM ACTION= \"up.php\" METHOD=POST ENCTYPE=\"multipart/form-data\">\n"); print ("File <INPUT TYPE=FILE NAME=\"File\" SIZE=30><BR>\n"); print ("<INPUT TYPE=SUBMIT NAME= \"SUBMIT\" VALUE=\"Submit!\"></FORM>\n"); ?> </body> </html>
Also könnte mir jemand das umscripten ,das man (.jpeg .gif .png .bmp) nur uploaden kann.
//Edit//:**Habe |Suchbox| benutzt aber nix hatte mit das zu tuen was ich hier meine.**
Beitrag zuletzt geändert: 9.12.2009 19:00:31 von fabian-meinders -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich muss ehrlich gestehen, dass ich mich fast gar nicht mit PHP auskenne, jedoch versuche ich zu helfen:
Soweit ich mich erinnern kann, war bei einem Upload-Script, das ich mal benutzt habe, folgendes in der config.php:
$filetypes = array('jpg','jpeg','gif','png','bmp');
Ob du damit was anfangen kannst, ist eine andere Frage, aber wie schon erwähnt: Ich versuche nur zu helfen. -
Kannst du mal den ganzen Upload Script zeigen ...
Bestimmt stehen da elsen usw.. -
Der ganze Script ist etwas lang und enthält auch einiges an Text usw, aber ich zeig ihn dir mal:
Code der index.php:
<!-- ///////////////////////////////////////////////////////////////////// // ** // // ** Copyright (c) 2007 by Arne // // ** http://www.arne-home.de // // v1.1 vom 10.06.2007 ** Don't remove any (c) // // ** Dieser Eintrag darf nicht // // ** entfernt werden. // // ** // // ** BITTE Lesen sie die lies_mich.html! // // ** // // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Der Copyright-Hinweis am Beginn des Quellcodes des Scripts muss // // unverändert bleiben, der Copyright-Hinweis und Link zu // // www.arne-home.de bei der Ausgabe des Scripts muss auch erhalten // // bleiben, und darf in keiner weise unkentlich gemacht werden ! // // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// ///////////////////////////////////////////////////////////////////// --> <?php require('config.php'); $mb = $b_max/1048576; $mb = round($mb, 2); @chmod(''.$_SERVER[DOCUMENT_ROOT].'/'.$pfad.'/.', $up_chmod); if($upw=="1"){ if(isset($_POST['sendfiles'])){ if($_POST['pwd'] != $pw){ include("header.php"); echo "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"> <tr><td align=\"center\"> <span class=\"headline\"> <b>Bilder hochladen</b> </span> </td></tr> <tr><td width=\"100%\" align=\"center\"> <span class=\"headline\"> <br> Das Passwort fehlt oder ist falsch!<br> <br> <a href=\"javascript:history.back(-1)\" class=\"small\">« zurück</a> <br><br> </td></tr> </table>"; include("footer.php"); exit;} } } if($_GET['action'] == 'inhalt') { include("header.php"); echo "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"> <tr><td align=\"center\"> <span class=\"a\"><b>Inhalt des Bildordners</b></span> </td></tr> <tr><td width=\"100%\" align=\"center\"><br>"; $verz=opendir (''.$_SERVER[DOCUMENT_ROOT].'/'.$pfad.'/.'); while ($File = readdir ($verz)) { { echo "<table cellpadding=\"0\" cellspacing=\"0\" width=\"50%\"><tr><td align=\"left\"><span class=\"headline\">"; if($dl_link==1){ echo "<img width=\"11\" height=\"11\" src=\"./img/$li_bild\" alt=\"\" name=\"li\"><a href=\"$pfad/$File\" target=\"_blank\" class=\"list\"> $File</a>"; } else{ echo "<span class=\"headline\"><img width=\"11\" height=\"11\" src=\"./img/$li_bild\" alt=\"\" name=\"li\"> $File</span>"; } echo "</td></tr></table>";} } if ($dl_gesamt==1) { function dir_size($dir, &$size, $recursive=TRUE){ $handle = @opendir($dir); if(!$handle) return false; while ($file = @readdir ($handle)){ if (eregi("^\.{1,2}$",$file)){ continue;} if(!$recursive && $dir != $dir.$file."/"){ if(is_dir($dir.$file)) continue;} if(is_dir($dir.$file)){ dir_size($dir.$file."/", $size, $recursive);} else{ $size += filesize($dir.$file);} } @closedir($handle); } function sizeMath($size){ if($size >= 1024000){ $size = $size / 1024000; $size = sprintf("%01.2f", $size) . ' MB'; } else{ $size = $size / 1024; $size = sprintf("%01.1f", $size) . ' KB'; } return $size; } $size = 0; dir_size(''.$_SERVER[DOCUMENT_ROOT].'/'.$pfad.'/', $size, TRUE); $sizeD = sizeMath($size); echo "<br><span class=\"kleinschrift\">Gesamtgrösse der Bilder: "; echo $sizeD; echo "</span><br>"; } echo "<br><a href=\"javascript:history.back(-1)\" class=\"small\">« zurück</a><br><br></td></tr></table>"; include("footer.php"); exit; } include("header.php"); ?> <table width="100%" cellpadding="0" cellspacing="0"> <tr><td align="center"> <span class="headline"> <b>Bilder hochladen</b> </span> </td></tr> <tr><td width="100%" align="center"> <span class="headline"> <br> Das Bild darf nicht größer als <b><?php echo "$mb"; ?></b> MB sein.<br> <?php if($dl_endung==1){ echo"<u><b>Zugelassene Bildformate:</b></u> "; foreach ($filetypes as $value){echo " $value";}echo ".<br> <h2 style=\"color:green; text-decoration:underline;\">Bitte beachten!</h2><br> <div style=\"font-size: 13px;\">Bitte beachten Sie, dass der Dateiname sowohl <u>kein Umlaut</u> wie <b><i>ä</i></b>, <b><i>ö</i></b> oder <b><i>ü</i></b>, als auch kein <b><i>ß</i></b> und keinen Space (Abstand) und kein <b>()</b>, <b>[]</b> und <b>{}</b> enthält! <br> Mögliche Alternativen wären <b><i>ae</i></b> statt <b><i>ä</i></b>, <b><i>oe</i></b> statt <b><i>ö</i></b>, <b><i>ue</i></b> statt <b><i>ü</i></b>, <b><i>ss</i></b> statt <b><i>ß</i></b> und <b><i>_</i></b> statt <b><i>[Space]</i></b>. Klammern bitte einfach weglassen.</div><br>";} ?> <br><b><big>Wieviele Bilder sollen hochgeladen werden?</b></big></span><br> <br> <?php if($inhalt==1){ echo "<a href=\"index.php?action=inhalt\"><b>Inhalt des Bildordners</b></a><br>";} ?> <br> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <select name="numfiles" class="select"> <?php for ($i=1; $i<=$dateien; $i++) { echo ("<option value=$i>$i"); } ?> </select> <input type="Submit" value="Weiter" name="up" class="button"> <br><br> </form> <form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <?php if (isset($_POST['up'])){ echo '<span class="headline"><b>'.$numfiles.'</b> '; echo $_POST['numfiles'] == '1' ? 'Datei kann' : 'Dateien können'; echo ' hochgeladen werden.</span><p>'; for ($i=1; $i<=$_POST['numfiles']; $i++){ echo "<input type=\"File\" name=\"myfile$i\" class=\"input\"><br>\n";} if($upw==1){echo'<br><span class="headline">Passwort</span> <input type="password" name="pwd" class="input">';} echo '<br><input type="Submit" name="sendfiles" value="Hochladen!" class="button"><br><br>';} if (isset($_POST['sendfiles'])){ $numsendfiles = count($_FILES); foreach($_FILES as $strFieldName => $arrPostFiles){ if ($arrPostFiles['size'] > $b_min && $arrPostFiles['size'] < $b_max){ $strFileName = $arrPostFiles['name']; $strFileTemp = $arrPostFiles['tmp_name']; if ($dl_endung==0) { @copy ($strFileTemp, "$_SERVER[DOCUMENT_ROOT]/$pfad/$strFileName"); echo "<span class=\"headline\"><font color=green><b>Bild $strFileName erfolgreich hochgeladen.</b></font><br> <b>URL:</b> <a href=\"http://cscrack.lima-city.de$pfad/$strFileName\" class\"small\" target=\"_blank\">http://cscrack.lima-city.de$pfad/$strFileName</a> <br><br> <b>HTML-Code zum Einbinden und Verlinken der Grafik:</b><br> <textarea cols=\"80\" rows=\"4\"> <a href=\"http://cscrack.lima-city.de\" target=\"_blank\" title=\"Gratis Bildupload\" style=\"text-align:center;\"><img src=\"http://cscrack.lima-city.de$pfad/$strFileName\" border=\"0\" alt=\"Gratis Bildupload\"></a> </textarea></span> <br><br>"; if ($upmail==1 && $numsendfiles != 1) { $ip = $_SERVER["REMOTE_ADDR"]; $subject = "Upload auf Homepage"; $body .= "Datum: ".date("d.m.Y, H:i:s")." Uhr\n"; $body .= "IP: $ip\n"; $body .= "$numsendfiles Bild(er) wurden hochgeladen\n"; $body .= "Domain: http://$_SERVER[HTTP_HOST]$pfad/$strFileName"; @mail($email, $subject, $body, "From: $email"); } } elseif($dl_endung==1) { $pfad_info = pathinfo($strFileName); $extension = strtolower($pfad_info["extension"]); if (in_array($extension,$filetypes)) { if ($dateien_w == 0) { $unixtime = time(); $strFileNameComponents = explode(".",$arrPostFiles['name']); $strFileName = "$strFileNameComponents[0]-$unixtime.".$strFileNameComponents[1]; $strFileName = ereg_replace("ä","ae",$strFileName); $strFileName = ereg_replace("ö","oe",$strFileName); $strFileName = ereg_replace("ü","ue",$strFileName); $strFileName = ereg_replace("ß","ss",$strFileName); $strFileName = ereg_replace(" ","_",$strFileName); $strFileName = ereg_replace("-","_",$strFileName);} @copy ($strFileTemp, "$_SERVER[DOCUMENT_ROOT]/$pfad/$strFileName"); echo "<span class=\"headline\"><font color=green><b>Bild $strFileName erfolgreich hochgeladen.</b></font><br> <b>URL:</b> <a href=\"http://cscrack.lima-city.de$pfad/$strFileName\" class=\"small\" target=\"_blank\">http://cscrack.lima-city.de$pfad/$strFileName</a> <br><br> <b>HTML-Code zum Einbinden und Verlinken der Grafik:</b><br> <textarea cols=\"80\" rows=\"4\"> <a href=\"http://cscrack.lima-city.de\" target=\"_blank\" title=\"Gratis Bildupload\" style=\"text-align:center;\"><img src=\"http://cscrack.lima-city.de$pfad/$strFileName\" border=\"0\" alt=\"Gratis Bildupload\"></a> </textarea></span><br><br>"; if ($upmail==1 && $numsendfiles != 0) { $ip = $_SERVER["REMOTE_ADDR"]; $subject = "Upload auf Homepage"; $body .= "Datum: ".date("d.m.Y, H:i:s")." Uhr\n"; $body .= "IP: $ip\n"; $body .= "$numsendfiles Datei(en) wurden hochgeladen\n"; $body .= "Domain: http://$_SERVER[HTTP_HOST]$pfad/$strFileName"; @mail($email, $subject, $body, "From: $email"); } } else { echo "<span class=\"headline\"><font color=red><b>Unerlaubtes Dateiformat!</span><br><br>";} } } else { echo "<span class=\"headline\"><font color=#EE0000><b>Die Datei muss größer als $b_min Bytes und kleiner als $mb MB sein!</b><br><br> <a href=\"javascript:history.back(-1)\" class=\"small\">« zurück</a></font></span><br><br>";} } } ?> </form> </td></tr> </table> <?php include("footer.php");?>
Code der config.php:
<?php $pfad = "/upload/files"; # relative Pfad zu dem Ordner der hochgeladenen Dateien $up_chmod = 0777; # Chmodrechte das up Ordners 0755 oder 0777 $upmail = 1; # eMail nach Upload ja = 1 / nein = 0 $email = "e@ma.il"; # wenn eMail nach Upload ja, dann eMail an die Adresse $dateien = 50; # Anzahl der Uploadfelder $b_min = 10; # minimale Bytes $b_max = 2097152 ; # maximale Bytes / 1024 Bytes = 1 KB / 1024 KB = 1 MB # Falls unbekannt ist, wieviele Bytes der Server zuläßt, 'maximale-bytes.php' hochladen und öffnen. $pw = 1234; # Passwort $upw = 0; # Passwort ja = 1 / nein = 0 $inhalt = 1; # Inhalt des Uploadornders anzeigen ja = 1 / nein = 0 $dl_link = 1; # hochgeladene Dateien im up Ordner können verlinkt werden ja = 1 / nein = 0 # ACHTUNG bei Chmod 0777! # Dazu muß die .htaccess Datei im up Ordner gelöscht werden. # Der up Ordner ist jetzt nicht mehr sicher geschütz, # und Hacker können über ihn Zugriff auf den Server erlangen. $dl_endung = 1; # bestimmte Dateiendungen zulassen ja = 1 / nein = 0 $filetypes = array('jpg','gif','png','bmp','ai','jpeg','jpe','psd','tif','tiff','wbmp','ico'); # Zugelassene Upload-Dateiformate $dateien_w = 0; # Dateien überschreiben ja = 1 / nein = 0 # Bei nein (0) wird ein Unixtimekürzel nach den Dateinamen angehängt. $li_bild = "pupf_08.png"; # Listenbild im Inhalt / weitere im Ordner /img $dl_gesamt = 1; # Gesamtgrösse der Dateien anzeigen ja = 1 / nein = 0 $timestamp = time(); # aktuelle Zeit $heute = date("d.m.Y", $timestamp); # Datum von heute ?>
Viel Spaß/Erfolg beim Herauslesen der benötigten Daten, ich kann dir dabei leider nicht helfen!
Beitrag zuletzt geändert: 9.12.2009 20:31:34 von cscrack -
zum umscripten hab ich leider nicht genug zeit aber schu dir die Funktion exif_imagetype() an
$typ=exif_imagetype($_FILES["file"]["tmp_name"]); if($typ == 1 or $typ == 2 or $typ == 3){ //speichern }else { //error }
-
Ich kann mit dem Kram leider nix anfangen :( Könnte jemand das für mich machen bis morgen :)
Wäre sehr dankbar :) -
Die erlaubten Dateitypen stehen doch fein säuberlich in der Config.php:
$filetypes = array('jpg','gif','png','bmp','ai','jpeg','jpe','psd','tif','tiff','wbmp','ico'); # Zugelassene Upload-Dateiformate
Nichterwünschtes löschen und fertig.
FF
-
fatfreddy schrieb:
Die erlaubten Dateitypen stehen doch fein säuberlich in der Config.php:
$filetypes = array('jpg','gif','png','bmp','ai','jpeg','jpe','psd','tif','tiff','wbmp','ico'); # Zugelassene Upload-Dateiformate
Nichterwünschtes löschen und fertig.
FF
Den Code habe ich auch schon gefunden und gepostet, aber muss er $filetypes nicht irgendwie mit der Upload-Anfrage verknüpfen? Ich will dich nicht kritisieren, du kennst dich bestimmt besser aus als ich, mich interessiert es jetzt nur selbst, wie die ganze Geschichte funktioniert. -
In der Index.php wird in Zeile 179 geprüft, ob die Endung der hochzuladenden Datei im Array $filetypes vorhanden ist:
if (in_array($extension,$filetypes)) {
Allerdings nur, wenn in der Config der Wert für $dl_endung auf 1 gesetzt wurde. Mit einer 0 würde die Typprüfung abgeschaltet.
Nachtrag: Argh! Ich sehe gerade, daß ich mir DEIN Skript vorgenommen habe und nicht das des Themenstarters. *schäm*
Du hast natürlich recht, Vergleichbares muß in SEINEM Skript natürlich eingebaut sein/werden, sonst klappt es nicht.
Mit den Schnipseln, sollte das jetzt aber kein Problem mehr darstellen.
FF
Beitrag zuletzt geändert: 9.12.2009 21:06:12 von fatfreddy -
Gut, danke. Und schon bin ich wieder eine Ecke klüger geworden!
Antwort auf deinen Nachtrag: Ahja, mach das lieber mal du, ich kann das nicht!
Beitrag zuletzt geändert: 9.12.2009 21:06:30 von cscrack -
cscrack schrieb:
Antwort auf deinen Nachtrag: Ahja, mach das lieber mal du, ich kann das nicht!
Das sollte fabian-meinders jetzt auch selber schaffen.
FF -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage