2012-05-03 131 views
-2
<?php 

    if(!isset($_REQUEST['filename'])) 
    { 
    exit('No file'); 
    } 

    $upload_path = dirname("files"). '/'; 

    $filename = $_REQUEST['filename']; 

    $fp = fopen($upload_path."/".$filename.".wav", "wb"); 

    ***fwrite($fp, file_get_contents('php://input'));*** 

    fclose($fp); 

    exit('done'); 

?> 

我正在使用this示例嘗試錄製音頻並將其發送到服務器。用PHP它可以正常工作,但我想把這段代碼轉換成Ruby。在這一行中有(php://輸入),這是什麼意思?我應該寫些什麼紅寶石將PHP代碼轉換爲Ruby

fwrite($ fp,file_get_contents('php:// input')); 謝謝

+0

我不知道紅寶石,但PHP://輸入得到你的HTTP請求的原始 –

+0

'php://輸入'在這裏解釋:http://php.net/manual/en/wrappers .php.php – hakre

回答

4

很明顯,紅寶石沒有php://流包裝 - 它是PHP的具體。所以你不能從字面上移植它。

php://input在此說明:http://php.net/manual/en/wrappers.php.php

PHP://輸入是一個只讀流,可以讓你請求主體讀取原始數據。

因此,例如,如果這是一個交請求(這是通常的情況),爲Rails 3,request.raw_post文檔是在http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-raw_post

+0

如果我像這樣改變是正確的? File.open(路徑,「wb」){| f | f.write(raw_post())} – fish40

+1

@ fish40:我認爲你應該先學習一些ruby基礎知識,比如如何用ruby和rails編程。我將你的API鏈接到了你的問題範圍內,它應該提供你需要知道的所有信息。如果你的問題實際上是如何編寫Ruby代碼,我不能幫你,因爲我根本不知道Ruby,對不起。 – hakre