【问题标题】:Codeigniter - two upload fields in one formCodeigniter - 一个表单中的两个上传字段
【发布时间】:2013-08-21 12:09:18
【问题描述】:

我正在尝试在 Codeigniter 中从具有两个文件输入字段的表单上传图像和 mp3。 image 字段称为 userfile,mp3 字段称为 trackfile。

在我的模型中,我有这段代码(已修改):

        $image_resource = $this->library_model->upload_image($_FILES);
        $data = array(
            'name' => $this->input->post('name'),
            'imageresource' => $image_resource
            );          

        $this->db->insert('table_name',$data);
        $insert_id = $this->db->insert_id();
        if ($_FILES && $_FILES['trackfile']['name'] !== "") {
            $config = array(
                'allowed_types' => 'mp3',
                'upload_path' => './assets/samples/'
            );
            $this->load->library('upload',$config);
            //echo 'about to upload';
            if ($this->upload->do_upload('trackfile')) {
                $file_data = $this->upload->data();
                //echo 'uploaded: <pre>'; print_r($file_data); echo '</pre>'; die();
                $track_data['trackfile'] = $file_data['file_name'];
                $this->db->where('id', $insert_id);
                return $this->db->update('table_name',$track_data);
            } else {
                echo 'Failed: '; 
                echo $this->upload->display_errors();   
                echo 'FILE DATA: <pre>'; print_r($_FILES['trackfile']); echo '</pre>';
            } 
        }

我的问题是这会产生错误“不允许您尝试上传的文件类型”。我检查了 mp3 类型,它是 audio/mpeg,在 mimes.php 文件中。

在我上传图片时发生。如果我将图像字段留空,则 mp3 可以正常上传。非常感谢任何帮助。

【问题讨论】:

    标签: codeigniter upload


    【解决方案1】:

    编辑

    根据 CI 文档,配置的 allowed_types 部分是一个管道分隔的 mime 类型列表,而不是文件扩展名。例如,mp3 的 mime 类型为“audio/mpeg”。所以你的allowed_types 配置应该是这样的:

    $config = array(
                'allowed_types' => 'audo/mpeg|audio/x-wav|audio/x-aiff|application/ogg',
                'upload_path' => './assets/samples/'
               );
    

    如果这不起作用,请尝试initialize 提到的库here

    【讨论】:

    • 感谢您的回复——我的代码可能不够清晰,但这不是问题,因为当它上传 mp3 时,它已经上传了图像(这里:$ this->library_model->upload_image($_FILES)).
    • 再次感谢您的尝试。但是,mime 类型列表来自 mimes.php:这里 mp3 与 audio/mpeg 匹配(这是我要上传的类型)。反正我试过你的方法,以防万一,还是不行。
    • @GregThomas 最后一次尝试尝试initialize 库,如下所示 - stackoverflow.com/questions/3653110/…
    • 鲍里斯拉夫 我可以嫁给你!成功了,谢谢你的坚持。您可以编辑您的答案以便我接受吗?还是不允许?
    • @GregThomas 谢谢。刚刚做了。很高兴我能提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2017-11-08
    • 1970-01-01
    • 2017-10-28
    相关资源
    最近更新 更多