Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Dateiupload Prüfung der Endung

  1. #1
    Meister(in)
    Registriert seit
    15.05.2005
    Beiträge
    404
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Dateiupload Prüfung der Endung

    Ich habe folgenden Code für den Dateiaupload:
    Code:
    if($_REQUEST['Send'])
    {
            if($_FILES['Datei']['tmp_name'])
            {
    move_uploaded_file($_FILES['Datei']['tmp_name'], "upload/".$_FILES['Datei']['name']);     
    }}
    das funktioniert auch, nun habe ich eine Mime-Prüfung, die auch funktioniert:
    Code:
    if($_REQUEST['Send'])
    {
            if($_FILES['Datei']['tmp_name'])
            {
                     $contentType = $_FILES['Datei']['type'];
                     if($contentType == "image/jpeg" || $contentType == "image/gif" || $contentType == "application/zip"  || $contentType == "image/png")
    
                     {
                             
                             move_uploaded_file($_FILES['Datei']['tmp_name'], "upload/".$_FILES['Datei']['name']);
    nun möchte ich statt dieser eine Dateiendung vornehmen, da der Upload zum uploaden von SC2Replays (.SC2Replay) dient:
    Code:
    if($_REQUEST['Send'])
    {
            if($_FILES['Datei']['tmp_name'])
            {
                     $file_extensions = array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'SC2Replay', 'sc2replay');
    
                     if (in_array(strtolower(getExtension($_FILES['name'])), $file_extensions))
                     {
    
                             move_uploaded_file($_FILES['Datei']['tmp_name'], "upload/".$_FILES['Datei']['name']);
    Leider funktioniert das nicht, warum?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Was macht denn die Funktion getExtension()?

  3. #3
    Meister(in)
    Themenstarter

    Registriert seit
    15.05.2005
    Beiträge
    404
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiupload Prüfung der Endung

    achso, sorry:

    Code:
    function getExtension ($filename)
        {
            if(strrpos($filename, '.'))
                 return substr($filename, strrpos($filename, '.')+1);
            return false;
        }

  4. #4
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Da hätte ich dir gleich 2 Alternativen zu bieten:

    Code:
    function getExtension($filename = "") {
     $pathinfo = pathinfo($filename);
     return $pathinfo['extension']; 
    }
    Code:
    function getExtension($filename = "") 
    { 
      return (false === ( $p = strrpos($filename, '.') ) ? '' : substr($filename, ++$p));
    }

  5. #5
    Meister(in)
    Themenstarter

    Registriert seit
    15.05.2005
    Beiträge
    404
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Vielen Dank, aber leider klappt es nicht. Es kommt auch keine Fehlermeldung, er geht mit beiden deiner Varianten nicht in den if sondern in den else-Zweig.

  6. #6
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Mit welcher Dateiendung versuchst Du es? Mit "SC2Replay" wird es nicht funktionieren, weil Du den Vergleichswert klein machst.

    Btw. wäre der Weg über den Content-type der sicherere ..

  7. #7
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Vorsicht! Hier kann ein Hacker durch manuelles ändern des Dateinamens die datei irgendwo auf deinem Serverplatzieren und unschöne dinge anrichten.
    PHP-Code:
    function parseFilename($filename) {
        
    $pos=strpos($filenamedirname($filename));
        if (!
    $pos$pos=0;
        return 
    substr($filename$pos);

    Und @threadi:
    Daran liegt es glaub ich nicht, sondern:
    @TS:
    PHP-Code:
    function getExtension ($filename) {
        
    $filename=parseFilename($filename);
        
    $dot=strrpos($file".");
        if (
    $dot) {
            return 
    substr($file$dotstrlen($file));
        }  else {
            return 
    false;
        }
    }
    # Das hat bei mir IMMER geklappt, wobei das auch nichts anders tut als die Funktion vom TS 
    Von daher denke ich, es liegt eher am Inhalt von
    $_FILES["Datei"]["name"]. Wie sieht denn der aus?

  8. #8
    Meister(in)
    Themenstarter

    Registriert seit
    15.05.2005
    Beiträge
    404
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Zitat Zitat von threadi Beitrag anzeigen
    Btw. wäre der Weg über den Content-type der sicherere ..
    Ich habe schon versucht ein Content-type selber zu definieren, aber das ist mir nicht gelungen:
    Code:
    <configuration>
    
        <system.webServer>
    
            <staticContent>
                <mimeMap fileExtension=".SC2Replay" mimeType="image/sc2" />
                <mimeMap fileExtension=".sc2replay" mimeType="image/sc2" />
         </staticContent>
    
        </system.webServer>
    
    </configuration>
    Von daher denke ich, es liegt eher am Inhalt von
    $_FILES["Datei"]["name"]. Wie sieht denn der aus?
    Das ist nichts anderes als der Dateiname, z.B.: "Verschollener Tempel (4).SC2Replay"

    @Tobse:
    Bei deinem Code ist laut Fehlermeldung parseFilename() nicht definiert
    Geändert von supersass1 (21.10.2010 um 23:03 Uhr)

  9. #9
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiupload Prüfung der Endung

    evtl. solltest du in deiner Abfrage $_FILE['Datei']['name'] benutzen anstatt $_FILE['name']
    Oder ist das nur ein Vertipper?

  10. #10
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Dateiupload Prüfung der Endung

    Hehe, mal wieder alle blind gewesen. Ich wette, da liegt der hase im pfeffer.
    @TS:
    die Funktion gobt es standardmäsig auch nicht, die habe ich im codeschnipsel darüber definiert. Der muss natürlich dazu
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

Ähnliche Themen

  1. html endung bei kontaktformular
    Von Unregistriert im Forum HTML & CSS Forum
    Antworten: 6
    Letzter Beitrag: 14.07.2009, 13:24
  2. Programm endung (.bin) (.cue)
    Von sticky im Forum Computer - Internet Forum
    Antworten: 4
    Letzter Beitrag: 14.01.2008, 17:30
  3. Prüfung auf Dateiendung
    Von csigg im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 10.09.2007, 18:07
  4. -Endung
    Von Solo im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 17.06.2006, 21:33
  5. bild mit der endung .html
    Von castor im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 1
    Letzter Beitrag: 16.05.2005, 18:58

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •