0

我正在创建一个表单来上传视频文件,但我有一个奇怪的错误。

我的表格是这样的:

<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');
  }

关于哑剧类型,我认为没关系:

'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 文件时,它会自动将我重定向(尽管我不确定它是否是重定向)到表单,未填写且没有错误消息,即使我在上传失败的情况下评论这些行也不会再次加载视图或者如果表格的其余部分不正确(它不应尝试上传视频并加载预先填写的表格)。

而例如,如果我输入了错误的文件类型,我会看到错误消息(例如“不允许您尝试上传的文件类型”),或者如果表单错误,我会看到表单的错误.

最后,我必须补充一点,我修改了 php.ini 以授权如此大的文件,并且我对图片表单(jpg、jpeg、png...)做了几乎相同的事情,它完美地工作但也将我重定向到一个如果我尝试上传 .mp4 文件,请填写未填写的表格。

编辑:我刚刚下载了一个flv视频试试,它上传得非常好,但是它的大小小于8mb(默认配置),一个40mb的flv文件和mp4文件有同样的问题,虽然我在php中改变了我的配置.ini 100mb

4

1 回答 1

1

实际上,您必须更改PHP ini 文件中的两个参数

post_max_size = 100M
upload_max_filesize = 100M

但您可能还想更改 apache 滥用保护参数(100M)

LimitRequestBody 1073741824

另一方面,PHP 每个脚本也有 30 秒的时间限制,因此您的脚本将在运行 30 秒时终止。

您可能还想增加时间以确保您的脚本在上传、复制等时不会死机,

set_time_limit(600);  // 10 minutos execution
于 2013-05-23T14:28:11.957 回答