我正在创建一个上传视频文件的表单,但我有一个奇怪的错误 .
我的表格是这样的:
<div style="color : red;"><?php echo $error;?></div>
<?php echo form_open_multipart('data_center/ajout_ressource/formulaire_video'); ?>
//various input text fields...
<input type="file" name="video">
<input type="submit" value="Ajouter cette ressource" />
</form>±
我上传的方法是(在内容中检查表单的其余部分是否正常):
$dir = './assets/video/';
$config['upload_path'] = $dir;
$config['allowed_types'] = 'avi|flv|wmv|mpeg|mp3|mp4';
$config['max_size'] = '102400';
$this->load->library('upload',$config);
if ( ! $this->upload->do_upload('video')){
$error = array('error' => $this->upload->display_errors());
$this->load->view('data_center/ajout_video', $error);
} else {
redirect('data_center/data_center/','refresh');
}
关于mime类型,我认为没关系:
'mp4' => 'video/mp4',
'wmv' => array('video/wmv', 'video/x-ms-wmv', 'flv-application/octet-stream', 'application/octet-stream'),
'flv' => array('video/flv', 'video/x-flv', 'flv-application/octet-stream', 'application/octet-stream'),
'avi' => 'video/x-msvideo',
当我尝试上传一个mp4文件时,它自动将我重定向(虽然我'm not sure it' sa重定向)到表单,未填充且没有错误消息,即使我在上传失败的情况下评论行也不再加载视图或其他形式是不正确的(它不应该尝试上传视频并加载预先填写的表格) .
例如,如果我输入错误类型的文件,我可以看到错误消息(例如'The filetype you are attempting to upload is not allowed'),或者如果表单错误,我可以看到表单的错误 .
最后,我必须补充一点,我修改了php.ini来授权这样的大文件,并且我用图片的形式(jpg,jpeg,png ...)做了几乎相同的事情,它完美地工作但是也将我重定向到了如果我尝试上传.mp4文件,则填写未填写的表单 .
Edit: 我刚刚下载了一个flv视频试试,它上传得很好,但它的大小小于8mb(默认配置),40mb flv文件和mp4文件有同样的问题,虽然我在php中更改了我的配置 . ini为100mb
1 回答
有效地,您必须在PHP ini文件中更改两个参数
但您可能还想更改apache滥用保护参数(100M)
而另一方面,PHP每个脚本的时间限制也是30秒,因此您的脚本将在30秒运行时死亡 .
您可能还希望增加时间以确保您的脚本不会因为上传,复制等而死亡,