[PHP] Upload mobile

Dieses Thema im Forum "Webentwicklung" wurde erstellt von freakZ, 5. Dezember 2012 .

Schlagworte:
  1. 5. Dezember 2012
    Upload mobile

    hi,

    folgendes Datei Upload von Handy , auf einigen Geräten funktioniert dieser, auf einigen wie HTC wiederum garnicht.

    Kann mir da wer Tipps geben oder sagen woran ich mein Script anpassen muss damit ein Datei Upload auf JEDEM Handy funktioniert?
     
  2. 5. Dezember 2012
    AW: Upload mobile

    Dazu müsste man wissen wie du dein Script aufgebaut hast. Kann man ja blind nicht sagen.
     
  3. 6. Dezember 2012
    AW: Upload mobile

    Es ist einfach ein simpler php upload, ein html form und ein phpscript das einfach in den ordner img ladet.

    Also ein typisches "beispielscript" wie man es im Web zu hauf, findet - doch bei HTC und Nokia funkt das eben nicht (
     
  4. 6. Dezember 2012
    AW: Upload mobile

    Du solltest einfach den Quellcode hier posten und genau bescheid geben welche Geräte mit welcher Software nicht funktionieren.

    Ich kann dir auch erzählen, dass ein Dell Notebook keine Webseiten öffnen kann - dabei ist der Hersteller eher zweitrangig sondern eher das eingesetzte Betriebssystem und Browser sind interessant..
     
  5. 6. Dezember 2012
    AW: Upload mobile

    Alle die es nicht verstanden haben es handelt sich um ein "standart bzw. beispiel script" das man zu haufe im web findet wie dieses hier ->

    PHP:
    <? php
    $allowedExts 
    = array( "jpg" "jpeg" "gif" "png" );
    $extension  end ( explode ( "." $_FILES [ "file" ][ "name" ]));
    if (((
    $_FILES [ "file" ][ "type" ] ==  "image/gif" )
    || (
    $_FILES [ "file" ][ "type" ] ==  "image/jpeg" )
    || (
    $_FILES [ "file" ][ "type" ] ==  "image/png" )
    || (
    $_FILES [ "file" ][ "type" ] ==  "image/pjpeg" ))
    && (
    $_FILES [ "file" ][ "size" ] <  20000 )
    && 
    in_array ( $extension $allowedExts ))
      {
      if (
    $_FILES [ "file" ][ "error" ] >  0 )
        {
        echo 
    "Return Code: "  $_FILES [ "file" ][ "error" ] .  "<br>" ;
        }
      else
        {
        echo 
    "Upload: "  $_FILES [ "file" ][ "name" ] .  "<br>" ;
        echo 
    "Type: "  $_FILES [ "file" ][ "type" ] .  "<br>" ;
        echo 
    "Size: "  . ( $_FILES [ "file" ][ "size" ] /  1024 ) .  " kB<br>" ;
        echo 
    "Temp file: "  $_FILES [ "file" ][ "tmp_name" ] .  "<br>" ;

        if (
    file_exists ( "upload/"  $_FILES [ "file" ][ "name" ]))
          {
          echo 
    $_FILES [ "file" ][ "name" ] .  " already exists. " ;
          }
        else
          {
          
    move_uploaded_file ( $_FILES [ "file" ][ "tmp_name" ],
          
    "upload/"  $_FILES [ "file" ][ "name" ]);
          echo 
    "Stored in: "  "upload/"  $_FILES [ "file" ][ "name" ];
          }
        }
      }
    else
      {
      echo 
    "Invalid file" ;
      }
    ?> 
    Quelle: http://www.w3schools.com/php/php_file_upload.asp

    Das funkt am PC zwar echt fein und am Samsung Galaxy S 3 auch aber Nokia und co kommen da nicht mit - und da brauch ich auch keine detail beschreibung denn der php upload wird immer aufs gleiche funken - es geht lediglich um die Endgeräte die damit wohl nicht zurecht kommen! Und somit liegt dies nicht an dem jeweiligen Upload Script sondern an der übergabe des bildes an den Server!
     
  6. 6. Dezember 2012
    AW: Upload mobile

    ACHTUNG!
    Das was in $_FILES['file']['type'] steht hat der Browser/Client gesetzt und muss nicht richtig sein!

    Meine Vermutung ist das HTC den falschen Mimetype sendet

    PHP:
    <? php
    $allowedExts 
    = array(
        
    'jpg' ,
        
    'jpeg' ,
        
    'png' ,
        
    'gif' ,
    );

    $allowedMimetypes  = array(
        
    'image/jpg' ,
        
    'image/jpeg' ,
        
    'image/png' ,
        
    'image/gif' ,
    );


    $extension  end explode '.' $_FILES [ 'file' ][ 'name' ]) );
    $mimetypeFromClient  $_FILES [ 'file' ][ 'type' ];

    $maxFileSize  20000 ;

    if( ! 
    in_array $mimetypeFromClient $allowedMimetypes  ) ) 
    {
        echo 
    'Mimetype from client is not valid (' htmlspecialchars $mimetypeFromClient  ) . ')' ;
        exit;
    }


    // ... code ...
     
  7. 6. Dezember 2012
    AW: Upload mobile

    @Nano wärst du bereit mir ein simples demo ding zu schreiben das ich testen kann und das auch loggt ob erfolgreich mit welchem browser agent - bin am verzweifeln.

    Hab aus dem web gestern 3 mini upload scripts probiert verschiedene nichts ging
    Weiss auch nicht welche variablen da sich mit dem Mobilen Browsern die Zähne ausbeissen!

    Geplant war es so das der User via m.xxxx.de sein eigenes Userbild hochladen kann - EGAL MIT WELCHEM BROWSER / Endgerät
     
  8. 6. Dezember 2012
    Zuletzt bearbeitet: 6. Dezember 2012
    AW: Upload mobile

    Mein Android Smartphone sendet:
    [type] => application/octet-stream

    Ein "logs/" Verzeichnis muss Existieren.
    PHP:
    <? PHP

    function  relativeToAbsolutePath $relative $absolute  null  )
    {
        if( 
    $absolute  ===  null  ) {
            
    $absolute  realPath './'  );
        }
        
        if( 
    strpos $relative $absolute  ) === 
        {
            
    $absoluteLen  strlen $absolute  ) +  1 ;
            
            
    $absolutePath  substr $relative $absoluteLen  );
        }
        else 
        {
            return 
    $relative ;
        }
        
        return 
    $absolutePath ;
    }



    if( 
    $_SERVER [ 'REQUEST_METHOD' ] ==  'POST'  ) {

        
    $log  $_SERVER [ 'HTTP_USER_AGENT' ] .  "\n\n" ;

        
    $log  .=  "POST Data:\n" ;
        
        
    $log  .=  print_r $_POST true  );
        
        
    $log  .=  "\n\nGET Data:\n" ;
        
    $log  .=  print_r $_GET true  );
        
        
    $log  .=  "\n\nFILES Data:\n" ;
        
    $log  .=  print_r $_FILES true  );

        
    $tmpLogFile  tempnam 'logs' 'log_'  );
        
        
    file_put_contents $tmpLogFile $log  );
        
    chmod $tmpLogFile 0644  );
        
        
    $link  relativeToAbsolutePath $tmpLogFile  );
        
        echo 
    '<a href="' $link  . '">' $link  . '</a>' ;
        exit;
    }

    ?><!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>File Upload</title>
    </head>
    <body>
        
        <form action="index.php" method="post" enctype="multipart/form-data">
        
            <div>
                <input type="file" name="file" accept="image/*">
            </div>
            
            <div>
                <button type="submit">Upload</button>
            </div>
        
        </form>
        
    </body>
    </html>
     
  9. 6. Dezember 2012
    Zuletzt bearbeitet: 6. Dezember 2012
    AW: Upload mobile

    Mein Samsung Galaxy S 3 sagt.:
    [name] => 20121105_172353.jpg
    [type] => image/jpeg
    [tmp_name] => /tmp/phpyt3WHM
    [error] => 0
    [size] => 150350

    ----
    SAMSUNG GT-I9300/I9300XXDLIH
    [name] => 20121116_002538.jpg
    [type] =>
    [tmp_name] =>
    [error] => 1
    [size] => 0
    -----
    GT-I9000 Build/GINGERBREAD
    [name] => 2012-11-06 17.48.22.jpg
    [type] => image/jpeg
    [tmp_name] => /tmp/phpJnZnte
    [error] => 0
    [size] => 1123921

    Die andren Handys folgen noch wie die es senden!
     
  10. 7. Dezember 2012
    AW: Upload mobile

    kann man den upload nicht einfach in ein tmp hochladen ohne prüfung.
    dann vom server prüfen lassen, bei erfolg verschieben sonst löschen und error zurück.
     
  11. 7. Dezember 2012
    AW: Upload mobile

    Bin für alles offen hab nur mit so etwas 0 ErfAhrung .. denn mit nehm normalen upload hat das ja leider kaum was zu tun ..
     
  12. 7. Dezember 2012
    AW: Upload mobile

    getimage size und da dann den mime type, das habe ich dir schon mit bsp source in nem anderen thead gepostet, mimes per ext zu prüfen ist a ziemlich dumm, und b können da unterschiede auftretten, habe das Problem bsp grad mit nfo, mein ubuntu apache liest die mit nfo ein, mein webspace sagt nur oct stream
     
  13. 7. Dezember 2012
    AW: Upload mobile

    Was tu ich wenns so aussieht? ->
    Mozilla/5.0 (Linux; U; Android 2.3.4; de-at; SonyEricssonSK17i-o Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

    POST Data:
    Array
    (
    )


    GET Data:
    Array
    (
    )


    FILES Data:
    Array
    (
    )
    ---

    oder:
    Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25

    POST Data:
    Array
    (
    )


    GET Data:
    Array
    (
    )


    FILES Data:
    Array
    (
    [file] => Array
    (
    [name] =>
    [type] =>
    [tmp_name] =>
    [error] => 4
    [size] => 0
    )

    )
     
  14. 9. Dezember 2012
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Upload mobile

    hi,

    nette ansage but ich wars nicht ->
    PHP:
     Upload Script  Einschränkungen  RR : Board [/ URL ]
     
  15. 9. Dezember 2012
    AW: Upload mobile

    PHP: Handling file uploads - Manual
    PHP: Error Messages Explained - Manual

    Wenn du später mal anderen Dateien als nur Bilder zulassen willst:
    PHP: Fileinfo Functions - Manual
     
  16. 9. Dezember 2012
    Zuletzt bearbeitet: 9. Dezember 2012
    AW: Upload mobile

    "SAMSUNG-GT-S3370/S3370XXJD7 SHP/VPP/R5 Dolfin/1.5 Qtv/5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-N"
    Ebenfalls ein griff ins klo auch mit dem script von Decryptor

    Danke @ murdoc das ist und war mir klar die frage ist WARUM es mit den Mobile DEVICES ned geht bislang ging jedes upload script von mir - war ja auch kein Problem , nur eben die mobile clients bringen da nix zusammen und können nix hochladen um das gehts mir ..

    Bin am ENDE , ich hab keine Ahnung mehr wie und warum es mit mobile clients nicht geht (

    --
    Updated .: so die maxsize erhöht bislang gehts bei einigen ..
     
  17. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.