我无法使用 Codeigniter 上传 mp3 文件

Posted

技术标签:

【中文标题】我无法使用 Codeigniter 上传 mp3 文件【英文标题】:I can't upload mp3 files using Codeigniter 【发布时间】:2010-05-12 08:21:54 【问题描述】:

有很多建议的修复方法,但没有一个对我有用。我尝试过制作上传类(使用以下方法:Method1 和Method2)。 当我尝试上传 mp3 时,我收到以下错误消息

您尝试上传的文件类型不允许

下面是我的模型和表单的代码(我有一个非常瘦的控制器)。如果有人可以帮助我解决这个问题,我将永远感激不尽。

型号

function do_upload()


        $soundfig['upload_path'] = './uploads/nav';
        $soundfig['allowed_types'] = 'mp3';

        $this->load->library('upload', $soundfig);

        if ( ! $this->upload->do_upload())
        
            $error = array('error' => $this->upload->display_errors());

            return $error;
           
        else
        

            /* $data = $this->upload->data('userfile'); */
            $sound = $this->upload->data();
            /* $full_path = 'uploads/nav/' . $data['file_name']; */
            $sound_path = 'uploads/nav/' . $sound['file_name'];

            if($this->input->post('active') == '1')
                $active = '1';
            else
                $active = '0';
            

            $spam = array(
                /* 'image_url' => $full_path, */
                'sound' => $sound_path,
                'active' => $active,
                'url' => $this->input->post('url')
            );

            $id = $this->input->post('id');

            $this->db->where('id', $id);
            $this->db->update('NavItemData', $spam);

            return true;

    

查看表单

<?php echo form_open_multipart('upload/do_upload');?>
<?php if(isset($buttons)) : foreach($buttons as $row) : ?>
<h2><?php echo $row->name; ?></h2>
<!-- <input type="file" name="userfile" size="20" /><br /> -->
<input type="file" name="userfile" size="20" />
<input type="hidden" name="oldfile" value="<?php echo $row->image_url; ?>" />
<input type="hidden" name="id" value="<?php echo $row->id; ?>" />

<br /><br />
<label>Url: </label><input type="text" name="url" value="<?php echo $row->url; ?>" /><br />
<input type="checkbox" name="active" value="1" <?php if($row->active == '1')  echo 'checked';  ?> /><br /><br />
<input type="submit" value="submit" />

</form>

<?php endforeach; ?>
<?php endif; ?>

【问题讨论】:

【参考方案1】:

是的,我在将文档/图像类型上传到 codeigniter 的文件上传类时遇到了类似的问题;我的解决方法是为我遇到问题的每种类型添加“应用程序/八位字节流”mime 类型,如下所示:

在 application/config/mimes.php 中

'jpeg'  =>  array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
'jpg'   =>  array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
'jpe'   =>  array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
'png'   =>  array('image/png',  'image/x-png', 'application/octet-stream'), 

【讨论】:

是的,我也发现了。必须在 mime 类中添加额外的 mime。

以上是关于我无法使用 Codeigniter 上传 mp3 文件的主要内容,如果未能解决你的问题,请参考以下文章

带有 Summernote 的 CodeIgniter - 无法将图像上传到数据库

我似乎无法在 codeigniter 中上传 css 文件类型

在 CodeIgniter 中更改上传文件的名称(点和下划线)

错误超时,在 codeigniter 中使用 excel_reader 上传 excel 文件

Codeigniter重命名图像文件不起作用

“上传路径似乎无效”。 Codeigniter文件上传不起作用[关闭]