2012-04-13 22 views
1

Ich entwickle ein API-System für meinen Upload-Dienst (in PHP). Im Moment unterstütze ich die Option, Bilddaten als binäre Daten von file_get_contents, fread usw. zu senden, oder indem ich sie mit einem 64-basierten System kodiere. Ich versuche, den Erweiterungstyp des Bildes zu ermitteln, das von diesen binary/base64-Daten auf meinen Dienst hochgeladen wird. Wenn es Base64 ist, dann dekodiere ich es und verarbeite es dann.Ermitteln des Erweiterungstyps mithilfe des Image-Streams

Ich habe folgende im Moment:

// We need to figure it out ourselves 
if ($type === "") 
{ 
    // Let's see if it is a base64 file 
    $base64 = $this->checkBase64Encoded($file_data); 

    // We got a 64 based file or binary 
    $type = $base64 === TRUE ? "base64" : "binary"; 
} 

if ($type == "binary") 
{ 
    $im = imagecreatefromstring($file_data); 

} 

Ich mag sehen, ob es möglich ist, den Bilderweiterungstyp für das Speichern der Datei zu bestimmen. Was schlägst du vor? Ich habe etwas über die Verwendung von getimagesize() gelesen? Obwohl ich mir darüber nicht sicher bin. Gibt es keine Möglichkeit, die Datei vorübergehend zu speichern, zu verarbeiten und dann umzubenennen?

ich auch geplant, diese zu verwenden, um zu testen, dass das Bild ein gültiges Bild war, bevor ich für die Erweiterung überprüft, aber ich war nicht ganz sicher, wie die getimagesize() Funktion verwenden:

try 
     { 
      // Get the width and height from the uploaded image 
      list($width, $height) = getimagesize($file['tmp_name']); // I'm not sure what to put here instead of $file['tmp_name'] 
     } 
     catch (ErrorException $e) 
     { 
      // Ignore read errors 
     } 

     if (empty($width) OR empty($height)) 
     { 
      // Cannot get image size, cannot validate 
      return FALSE; 
     } 

Bitte fühlen Sie sich frei um irgendwelche Klarstellungen zu bitten, wenn ich unklar war. Vielen Dank :)

+0

vielleicht wird dir das helfen: http://en.wikipedia.org/wiki/Magic_number_(programming) – n3on

Antwort

Verwandte Themen