Php CodeIgniter文件上传上写着;您没有选择要上载的文件";
我看过一大堆类似的问题,但似乎没有一个答案 我正试图在CodeIgniter中上传一个音频文件,但不断出现“您没有选择要上传的文件”的错误 我的代码如下: HTMLPhp CodeIgniter文件上传上写着;您没有选择要上载的文件";,php,.htaccess,codeigniter,Php,.htaccess,Codeigniter,我看过一大堆类似的问题,但似乎没有一个答案 我正试图在CodeIgniter中上传一个音频文件,但不断出现“您没有选择要上传的文件”的错误 我的代码如下: HTML <form class="form-horizontal" id="mp3form" action="<?=base_url();?>comp/comp_sadsc/save_entry_music/<?= $comp_location.'/'.$entry_id; ?>" method="post"
<form class="form-horizontal" id="mp3form" action="<?=base_url();?>comp/comp_sadsc/save_entry_music/<?= $comp_location.'/'.$entry_id; ?>" method="post" enctype="multipart/form-data">
<div class="control-group" id="load-music">
<label for="grouping_style" class="control-label">Load MP3 Music</label>
<div class="controls">
<input type="file" name="userfile" id="userfile" onchange="sadsc_select_music()">
</div>
</div>
<div class="control-group" id="feedback" style="display:none;">
<label for="grouping_name" class="control-label">Status</label>
<div class="controls">
<p id="responsemsg"></p>
</div>
</div>
</form>
<div class="progress progress-striped active" id="progressbar" style="display:none;">
<div class="bar" style="width: 0%;"></div >
<div class="percent">0%</div>
</div>
<div id="status"></div>
控制器
public function save_entry_music($location, $location_entry_id)
{
$foldername = "./comps/sadsc/music/$location";
if (!file_exists($foldername))
{
mkdir($foldername, 0777, true);
}
$config['upload_path'] = $foldername.'/';
$config['allowed_types'] = 'mp3';
$config['max_size'] = '0';
$config['file_name'] = $location_entry_id.'.mp3';
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
if (!$this->upload->do_upload())
{
$errors = array('error' => $this->upload->display_errors());
$return = ' - error - ';
foreach ($errors as $error)
{
$return .= $error.' ';
}
}
else
{
$return = 'success';
}
$this -> output -> set_output(json_encode($return));
}
不确定这是否有帮助,但这是我的htaccess文件:
RewriteEngine on
RewriteCond $1 !^(index\.php|img|css|vendor|data|fonts|files|js|comps|favicon\.ico)
RewriteRule ^(.+)$ index.php?$1 [L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
#RewriteCond %{HTTP_HOST} - --website_url_removed--
#RewriteRule (.*) --website_url_removed--/$1 [R=301,L]
我真的希望我错过的只是一些小东西。改变
$this->upload->do_upload()
到
这里userfile是文件字段的名称
如果你仍然面临着问题的改变
$this->load->library('upload', $config);
到
在功能参考中明确提及
您的
onchange=“sadsc\u select\u music()
函数在哪里?在全局JS文件中,该函数所做的只是删除必须开始上传的按钮的禁用属性i see short tags(哈哈,这不会引起问题,因为它们在服务器上启用了什么是PHP最大上载大小限制?文件是否超过此大小?我做了上述更改,起初它说文件超过了PHP配置中的限制,我将上载库的配置更改为$config['max\u size']='99999999';
但它仍然会首先错误检查php中的MAX_UPLOAD_SIZE和MAX_POST_SIZE。ini我找不到php.ini,但我确实将#vi/home/httpd/html/.htaccess php_value UPLOAD_MAX_file SIZE 10M php_value POST_MAX_SIZE 20M php_value memory_limit 32M
添加到了我的htaccess中,它看起来可以工作了!
$this->upload->do_upload('userfile')
$this->load->library('upload', $config);
$this->load->library('upload');
$this->upload->initialize($config);