2012-06-04 44 views
0

我的代碼正在上傳視頻文件,但在我擴展了表單後,它停止上傳。所有其他變量都通過了確定,但文件變量不是空白。爲什麼「POST」方法不能傳遞「type = file」變量?

我試着比較上傳邏輯與網上的類似示例,但無法看到我改變了什麼導致它失敗。在下面的清單中,我刪除了所有不相關的代碼。當這段代碼運行時,它返回「錯誤」。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
if (isset($_FILES['urlvideo'])) { 
    move_uploaded_file($_FILES['urlvideo']['tmp_name'], "{$_FILES['urlvideo']['name']}"); 
} else { 
    echo('Error'); 
    exit(); 
} 
?> 
<!DOCTYPE HTML> 
<html> 
    <body> 
    <form action="videotest.php" 
      method="post" 
     enctype="multipart/form-data"> 
     Upload video: 
     <input type="file" name="urlvideo" /><br> 
     <input type="submit" 
      value="Submit"/> 
    </form> 
    </body> 
</html> 
<?php ob_end_flush(); ?> 

感謝您花時間閱讀本文。

+0

什麼樣的錯誤你得到了什麼? – vee

回答

0

使用此驗證碼。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
if ($_POST) { 
    if (isset($_FILES['urlvideo'])) { 
     move_uploaded_file($_FILES['urlvideo']['tmp_name'], "{$_FILES['urlvideo']['name']}"); 
    } else { 
     echo('Error'); 
     exit(); 
    } 
} 
?> 
<!DOCTYPE HTML> 
<html> 
    <body> 
    <form action="testup.php" 
      method="post" 
     enctype="multipart/form-data"> 
     <input type="hidden" name="method" value="post" /><!-- for check $_POST before if isset $_FILES--> 
     Upload video: 
     <input type="file" name="urlvideo" /><br> 
     <input type="submit" 
      value="Submit"/> 
    </form> 
    </body> 
</html> 

那是因爲你把如果(isset($ _ FILES顯示窗體之前。

+0

謝謝你,我複製並粘貼代碼,但我仍然不能得到它我認爲它可能是複製自己的頂部,但創建和修改的日期不變,我修改了POST以GET來查看正在傳遞什麼,它只是通過文件名沒有路徑。 –

+0

你只需添加輸入類型=「隱藏」,帶有一些隨機的名稱和值。 下一個, 斗篷「if(isset($ _ FILES」with if($ _POST){...}隱藏數據發送到PHP。 我確認你所有的上傳代碼工作正常。只是輸入隱藏,如果$ _POST,我告訴你。 – vee

+0

非常感謝您的幫助。事實證明,我的代碼更改並沒有導致問題,當然你的代碼工作。我創建了更多的測試數據,文件大小>我的php.ini(2MB)中的默認上傳限制。作爲網絡開發的新手,我並不知道這個參數。我的web應用程序再次運行。如此多的時間消耗,仍然是一個教訓,我現在將通過所有的PHP和Apache參數來確保我不會被類似的東西再次絆倒。 –

相關問題