2012-12-20 67 views
1

我對Elgg很新,我試圖讓用戶上傳一個視頻。不過,我的問題也可能與php相關。PHP輸入/文件沒有拾取文件上傳

所以我建立了我的表格下面的代碼:

echo elgg_view("input/file", array('name' => 'video', 'accept' => 'video/*')); 

後者建立一個控制,允許用戶上傳文件。我的動作文件充滿了很多防禦性編程,以確保文件在那裏。當我嘗試上傳一個視頻,我收到以下錯誤指向我這個代碼片段:

// must not be empty if a file is present in the upload 
    if(empty($_FILES['video']['name'])) { 
     $error = elgg_echo('No file to upload!'); 
     register_error($error); 
     forward(REFERER); 
    } 

我完全在哪裏的問題可能在於失去了,我一直在努力實現這一目標約2現在幾天。我一直在提及一些使用Elgg中的文件上傳的插件,例如文件插件和TidyPics插件。

提前感謝所有幫助和提示。謝謝。

+1

有您確認您的視頻文件的大小小於['post_max_size'(http://php.net/post_max_size)和/或['memory_limit']( http://php.net/memory-limit)? – Sean

+0

我沒有,這會有所作爲嗎?我想上傳的視頻只有2MB大。我還測試了其他文件,它們返回相同的錯誤。我也嘗試追加$ _FILES ['video'] ['error']給錯誤,但它只是返回空白?... – M1kstur

+0

'php.in'中'post_max_size'的默認值是2MB,所以如果你的文件+任何其他數據是2.01MB或更大,它會導致上傳失敗,'$ _FILES []'將是一個空數組。 – Sean

回答

3

根據http://docs.elgg.org/wiki/Forms

MIME類型形式屬性(默認爲空白)。如果您希望表單執行上傳文件 ,那麼您需要通過'multipart/form-data'的值 。

試戴

echo elgg_view('input/form', array('enctype' => 'multipart/form-data', ...)); 
+0

加倍投票!再次感謝肖恩! – M1kstur

0

嘗試在if語句之前執行print_r($ _ FILES),然後使用exit()來查看是否會給出一些線索。我會發布這個作爲一個評論,但我沒有足夠的代表點,因爲我是堆棧溢出新。

+0

沒問題。我會盡快嘗試。 – M1kstur

+0

我用「Array()」打印出一個空白屏幕。我假設這意味着什麼都沒有?沒有選擇文件? – M1kstur

+0

如果我嘗試print_r($ _FILES ['video'] ['name'])或$ _FILES ['video'],則會返回空白屏幕。 – M1kstur