2012-12-20 40 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