我正在使用以下代码进行视频上传。
<?php
class upload_videos extends Admin_Controller {
function __construct() {
parent::__construct();
$this->load->helper('form');
}
function index () {
$this->load->view('admin/upload_form', array('error'=> ''));
}
function do_upload() {
$config['upload_path'] = './uploads';
$config['allowed_types'] = 'mov|mpeg|mp3|avi';
$config['max_size']= '';
$config['overwrite'] = FALSE;
$config['remove_spaces'] = TRUE;
$config['encrypt_name'] = TRUE;
$this->load->library('upload', $config);
if(!$this->upload->do_upload()) {
$error = array('error'=>$this->upload->display_errors() . ' hi');
$this->load->view('admin/upload_form', $error);
} else {
echo 'asasas';
$data = array('upload_data'=>$this->upload->data());
$this->load->view('admin/upload_success', $data);
}
}
}
我的问题是,当我试图上传一个mp4视频时,它显示我
string(9)"video/mp4"
消息。它不属于其他部分,视频也不会上传。有人能帮我做这个吗。注意:我已经在php.ini中设置了最大文件大小,注意我也尝试将mime类型设置为$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();
已编辑
我修改了上面的代码来上传图片,它给了我同样的结果。使用我的代码似乎无法上传任何内容。
我也遇到了同样的问题。但现在它对我来说很好。
实际上,您必须更改PHP ini文件中的两个参数
post_max_size = 100M
upload_max_filesize = 100M
但您可能还想更改apache滥用保护参数(100M)
LimitRequestBody 1073741824
另一方面,PHP也有每个脚本30秒的时间限制,所以你的脚本在运行30秒时就会失效。
你可能还想增加时间,以确保你的脚本不会在上传、复制等时死亡,
set_time_limit(600); // 10 minutos execution
从这里找到这个答案
将mp4
格式添加到allowed_types
,如:
$config['allowed_types'] = 'mov|mpeg|mp3|avi|mp4';
并在您的config/mimes.php
中添加mp4的mime类型(如果不存在),如:
'mp4' => array('video/mp4', 'application/octet-stream')