[PHP] Erweiterung Dateiupload

Dieses Thema im Forum "Webentwicklung" wurde erstellt von freakZ, 24. März 2013 .

  1. 24. März 2013
    Erweiterung Dateiupload

    hi,

    würde mir jemand helfen , das ganze so umzusetzen das z.b grafiken (jpg,gif,png) in den ordner /i/ kommt movies (mov,avi,mpg) in den ordner /m/ und music (oog,wav,mp3,mp4) in den ordner /mu/ kommen?
    Und für alle andren die nicht zugeteilt sind via mime typ die in einen normalen ordner wie blubb oder so kommen.

    Thanks


    PHP:
    <? php
    $UploadDirectory    
    'upload/' //Upload Directory, ends with slash & make sure folder exist

    // replace with your mysql database details

    $MySql_username      "uploading" //mysql username
    $MySql_password      "uploadXxtrem" //mysql password
    $MySql_hostname      "localhost" //hostname
    $MySql_databasename  'mobiletest' //databasename


    if (!@ file_exists ( $UploadDirectory )) {
        
    //destination folder does not exist
        
    die( "Make sure Upload directory exist!" );
    }

    if(
    $_POST )
    {    
        if(!isset(
    $_POST [ 'mName' ]) ||  strlen ( $_POST [ 'mName' ])< 1 )
        {
            
    //required variables are empty
            
    die( "Title is empty!" );
        }
        
        if(!isset(
    $_FILES [ 'mFile' ]))
        {
            
    //required variables are empty
            
    die( "File is empty!" );
        }

        
        if(
    $_FILES [ 'mFile' ][ 'error' ])
        {
            
    //File upload error encountered
            
    die( upload_errors ( $_FILES [ 'mFile' ][ 'error' ]));
        }

        
    $FileName             strtolower ( $_FILES [ 'mFile' ][ 'name' ]);  //uploaded file name
        
    $FileTitle             mysql_real_escape_string ( $_POST [ 'mName' ]);  // file title
        
    $ImageExt             substr ( $FileName strrpos ( $FileName '.' ));  //file extension
        
    $FileType             $_FILES [ 'mFile' ][ 'type' ];  //file type
        
    $FileSize             $_FILES [ 'mFile' ][ "size" ];  //file size
        
    $RandNumber            rand ( 0 9999999999 );  //Random number to make each filename unique.
        
    $uploaded_date         date ( "Y-m-d H:i:s" );
        
        switch(
    strtolower ( $FileType ))
        {
            
    //allowed file types
            
    case  'image/png' //png file
            
    case  'image/gif' //gif file 
            
    case  'image/jpeg' //jpeg file
            
    case  'application/pdf' //PDF file
            
    case  'application/msword' //ms word file
    // now we support crypt files hrhr
    case  'application/x-rar-compressed' //rar
    case  'application/octet-stream' //normaly
            
    case  'application/vnd.ms-excel' //ms excel file
            
    case  'application/x-zip-compressed' //zip file
            
    case  'text/plain' //text file
            
    case  'text/html' //html file
                
    break;
            default:
                die(
    'Unsupported File!' );  //output error
        
    }

      
        
    //File Title will be used as new File name
        
    $NewFileName  preg_replace (array( '/\s/' '/\.[\.]+/' '/[^\w_\.\-]/' ), array( '_' '.' '' ),  strtolower ( $FileTitle ));
        
    $NewFileName  $NewFileName . '_' . $RandNumber . $ImageExt ;
       
    //Rename and save uploded file to destination folder.
       
    if( move_uploaded_file ( $_FILES [ 'mFile' ][ "tmp_name" ],  $UploadDirectory  $NewFileName  ))
       {
            
    //connect & insert file record in database
            
    $dbconn  mysql_connect ( $MySql_hostname $MySql_username $MySql_password )or die( "Unable to connect to MySQL" );
            
    mysql_select_db ( $MySql_databasename , $dbconn );
            @
    mysql_query ( "INSERT INTO file_records (file_name, file_title, file_size, uploaded_date) VALUES (' $NewFileName ', ' $FileTitle ', $FileSize ,' $uploaded_date ')" );
            
    mysql_close ( $dbconn );
            
            die(
    'Success! File Uploaded.' );
            
       }else{
               die(
    'error uploading File!' );
       }
    }

    //function outputs upload error messages, http://www.php.net/manual/en/features.file-upload.errors.php#90522
    function  upload_errors ( $err_code ) {
        switch (
    $err_code ) { 
            case 
    UPLOAD_ERR_INI_SIZE
                return 
    'The uploaded file exceeds the upload_max_filesize directive in php.ini'
            case 
    UPLOAD_ERR_FORM_SIZE
                return 
    'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'
            case 
    UPLOAD_ERR_PARTIAL
                return 
    'The uploaded file was only partially uploaded'
            case 
    UPLOAD_ERR_NO_FILE
                return 
    'No file was uploaded'
            case 
    UPLOAD_ERR_NO_TMP_DIR
                return 
    'Missing a temporary folder'
            case 
    UPLOAD_ERR_CANT_WRITE
                return 
    'Failed to write file to disk'
            case 
    UPLOAD_ERR_EXTENSION
                return 
    'File upload stopped by extension'
            default: 
                return 
    'Unknown upload error'
        } 

    ?>

     
  2. 24. März 2013
    AW: Erweiterung Dateiupload

    Achtung!

    $_FILES['irgendwas'] ['type']

    Der wert "type" in dem FILES-Array wird vom Browser gesetzt und kann alles sein. Dem wert ist also nicht zu trauen.

    Benutz lieber finfo um den Mimetype zu bekommen.
     
  3. 24. März 2013
    AW: Erweiterung Dateiupload

    Könnteste mir das fixxen ? :O

    Was sagt meine Idee thema ordner ??
     
  4. 24. März 2013
    AW: Erweiterung Dateiupload

    Eigenintiative?!

    PHP:
    <? php
    $finfo 
    finfo_open ( FILEINFO_MIME_TYPE );
    $mimeType  finfo_file ( $uploadFile );
    finfo_close ( $finfo );

    switch(
    $mimeType ) {
      case 
    'image/png' :
      case 
    'image/jpeg' :
      case 
    'image/jpg' :
      case 
    'image/gif' :
        
    $uploadFolder  .=  '/i' ;
        break;
    //case movie
    //case music
      
    default:
        
    $uploadFolder  .=  '/blubb' ;
    }
    ?>
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.