Php CodeIgniter文件上传上写着;您没有选择要上载的文件";

Php 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"

我看过一大堆类似的问题,但似乎没有一个答案

我正试图在CodeIgniter中上传一个音频文件,但不断出现“您没有选择要上传的文件”的错误

我的代码如下:

HTML

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