2012-06-05 38 views
0

我在處理從我的Flash應用程序創建的圖像時遇到問題,它通過原始發佈數據發送數據,並將圖像寫入到我的/ webroot文件夾。在CakePHP中從FLASH上傳圖像

下面是我在「AvatarController.php」文件中的php代碼。

public function uploadImage() 
{ 
    $this->autoRender = false; // no view file 

    if ($this->request->is('post')) // if post data 
    { 
     $aUser = $this->aCurrentUser(); // gets user info 

     if (isset ($GLOBALS["HTTP_RAW_POST_DATA"])) // gets raw post data 
     { 
      $sImgName = $aUser['User']['username'] . '_full' . '.png'; 

      $fp = fopen($sImgName, "wb"); 
      fwrite($fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ]); 
      fclose($fp); 
     } 

    } 
} 

我遇到麻煩的是將其保存到不同的文件夾,例如/ webroot/avatars,我將如何去調整圖像大小,最終我想要做的是有三個左右的大小,例如「Username_full」,「Username_80」,「Username_50」;所以全尺寸,小80%,小50%等。

我從來沒有處理這樣的上傳,從閃存。

任何幫助,建議?

回答

0

http://www.kavoir.com/2009/01/php-resize-image-and-store-to-file.html

這看起來像的調整大小/移動業務PHP一個體面的教程。另一部分關於抓取文件本身,看到這篇文章,http://www.kirupa.com/forum/showthread.php?360502-AS3-PHP-File-Upload你在做什麼可能工作,但我只是傾向於使用$ _FILES變量,因爲它很清楚我將會有什麼。

+0

謝謝,我也會使用$ _FILES,但是我再次發送ByteArray到PHP,我不知道這是完全可能的! – Urduni

+0

啊我現在看到你在說什麼,並沒有完全遵循這個說法,所以你是否嘗試過使用你在PHP中生成的文件,並通過鏈接的腳本來傳遞它,只要gd可用應該是可行的,並允許你實現多分辨率圖像的目標。 – shaunhusain

+0

另外我沒有提到字節數據必須以某種格式編碼,這些格式將被gd「理解」。你可以在AS3端做到這一點,至少編碼爲JPEG http://blog.six4rty.ch/2010/07/17/as3-quickhint-convert-bitmapdata-to-bytearray/另外,在一個側面說明,你應該接受答案或通過工作解決您的其他問題,或者如果您發現答案發布並接受答案,或者在發現問題不相關時回答問題。否則它就會毀掉你的歷史。人們將不太可能提供幫助。 – shaunhusain