2012-01-07 231 views
0

我有一些PHP的殘端...PHP將圖像保存到服務器?

我有一個Flash應用程序發送圖像(使用as3corelib)到一個PHP腳本,它在瀏覽器中預覽它,它的工作!但是,我實際上喜歡將其永久保存在服務器文件夾中(上傳等),而不是暫時保存它。我無法在PHP中找到實際將圖像發送到服務器的正確變量,以便將其保存起來。

<?php 

    switch ($_POST["format"]) { 
     case 'jpg': 
      header('Content-Type: image/jpeg'); 
      break; 

     case 'png': 
      header('Content-Type: image/png'); 
      break; 
    } 

    if ($_POST['action'] == 'prompt') { 
     header("Content-Disposition: attachment; filename=" . $_POST['fileName']); 
    } 

    echo base64_decode($_POST["image"]); 

?> 

下面是它的一個例子:http://shmoggo.com/snapshot JPEG,開放的瀏覽器(但我想它保存到瀏覽器)

任何PHP大師幫助將是了不起的,非常感謝!

亞倫

+0

通常PHP存儲上傳文件數據在$ _FILES中,請嘗試var_dump($ _ FILES)以查看它是否包含數據。 [php上傳](http://www.php.net/manual/en/features.file-upload.post-method.php) – 2012-01-07 20:09:44

+0

@DipuRaj感謝您的評論,它幫助了很多。 – Aaron 2012-01-08 03:37:39

回答

0

如果你有文件名,你可以簡單地做

$newpath = "/folders/image.jpg"; 
$data = file_get_contents($_POST['fileName']); 
file_put_contents($newpath, $data); 
+0

謝謝!這看起來很完美,但我無法讓它爲我的生活工作!它保存了一個空白的「image.jpg」沒有數據......任何想法? – Aaron 2012-01-07 20:39:53

+0

是$ _POST ['fileName']遠程服務器上的圖像的實際文件名,而不是一些本地路徑嗎?也許如果$ _POST [「image」]已經有了實際的數據,那麼你可以使用file_put_contents作爲數據...你可能需要base64_decode。 – hackartist 2012-01-07 21:37:46

0

相反則顯示它,保存$_POST['image']到服務器,請參閱File System

相關問題