dpf7891 2014-01-28 07:08
浏览 57

CSV文件上传无法与Codeigniter一起使用

I'm using below code for upload csv files. It is always saying "invalid file error". How can I fix this issue?

Here is my form:

<form name="bulk_dealer" action="<?= base_url() ?>admin/add_bulk_user" method="post" accept-charset="utf-8"  enctype="multipart/form-data">  
    <ul>  
        <ul>
            <li class="ui-field"><label for="csvfile">Upload dealer id file( *only .csv) :</label></li> 
            <li class="ui-input"><input type="file" name="csvfile" value="" placeholder="" required=""></li>  
            <li><input type="submit" value="Upload" name="Upload" class="ui-submit"></li>  
        </ul>
    </ul>  
</form>

here is my controller

function add_bulk_user() {
    $data['add_bulk_user_errors'] = NULL;
    $data['add_bulk_user_success'] = NULL;       

    if ($this->input->post() !== FALSE) {
        $config_arr = array(
            'upload_path' => './uploads/csv/',
            'allowed_types' => 'text/plain|text/csv|csv',
            'max_size' => '2048',
            'max_width' => '1024',
            'max_height' => '768',
            'encrypt_name' => true,
            'file_name' => 'dealer'
        );

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

        if (!$this->upload->do_upload('csvfile')) {
            $data['add_bulk_user_errors'] = $this->upload->display_errors(); // this isn't working                
        } else {
            $csvfilepath = "uploads/csv/" . $config_arr['file_name'];
            $this->addfromcsv($csvfilepath);
            $data['qs'] = $this->upload->data();
            $row = 1;

            if (($handle = fopen("./uploads/csv/dealer.csv", "r")) !== FALSE) {
                while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                    $num = count($data);
                    $row++;
                    for ($c = 0; $c < $num; $c++) {

                        $this->load->model("login_model");
                        $is_esist = $this->login_model->check_is_exist($data[$c]);
                        if ($is_esist) {

                        } else {
                            $this->login_model->set_login($data[$c], 'dealer@ceat123');
                        }
                    }
                }
                fclose($handle);
            }

            $data['add_bulk_user_success'] = "File Uploaded Successfully";
        }

        $data['main_content'] = 'admin/add';

        $this->load->view('admin_layout', $data);
        redirect('admin/add_bulk_user', 'refresh');
    } else {
        $data['main_content'] = 'admin/add';
        $this->load->view('admin_layout', $data);
    }
}

mimes.php

$mimes = array( 'hqx'   =>  'application/mac-binhex40',
            'cpt'   =>  'application/mac-compactpro',
            'csv'   =>  array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),
            'bin'   =>  'application/macbinary',
            'dms'   =>  'application/octet-stream',
            'lha'   =>  'application/octet-stream',
            'lzh'   =>  'application/octet-stream',
            'exe'   =>  array('application/octet-stream', 'application/x-msdownload'),
            'class' =>  'application/octet-stream',
            'psd'   =>  'application/x-photoshop',
            'so'    =>  'application/octet-stream',
            'sea'   =>  'application/octet-stream',
            'dll'   =>  'application/octet-stream',
            'oda'   =>  'application/oda',
            'pdf'   =>  array('application/pdf', 'application/x-download'),
            'ai'    =>  'application/postscript',
            'eps'   =>  'application/postscript',
            'ps'    =>  'application/postscript',
            'smi'   =>  'application/smil',
            'smil'  =>  'application/smil',
            'mif'   =>  'application/vnd.mif',
            'xls'   =>  array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
            'ppt'   =>  array('application/powerpoint', 'application/vnd.ms-powerpoint'),
            'wbxml' =>  'application/wbxml',
            'wmlc'  =>  'application/wmlc',
            'dcr'   =>  'application/x-director',
            'dir'   =>  'application/x-director',
            'dxr'   =>  'application/x-director',
            'dvi'   =>  'application/x-dvi',
            'gtar'  =>  'application/x-gtar',
            'gz'    =>  'application/x-gzip',
            'php'   =>  'application/x-httpd-php',
            'php4'  =>  'application/x-httpd-php',
            'php3'  =>  'application/x-httpd-php',
            'phtml' =>  'application/x-httpd-php',
            'phps'  =>  'application/x-httpd-php-source',
            'js'    =>  'application/x-javascript',
            'swf'   =>  'application/x-shockwave-flash',
            'sit'   =>  'application/x-stuffit',
            'tar'   =>  'application/x-tar',
            'tgz'   =>  array('application/x-tar', 'application/x-gzip-compressed'),
            'xhtml' =>  'application/xhtml+xml',
            'xht'   =>  'application/xhtml+xml',
            'zip'   =>  array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
            'mid'   =>  'audio/midi',
            'midi'  =>  'audio/midi',
            'mpga'  =>  'audio/mpeg',
            'mp2'   =>  'audio/mpeg',
            'mp3'   =>  array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
            'aif'   =>  'audio/x-aiff',
            'aiff'  =>  'audio/x-aiff',
            'aifc'  =>  'audio/x-aiff',
            'ram'   =>  'audio/x-pn-realaudio',
            'rm'    =>  'audio/x-pn-realaudio',
            'rpm'   =>  'audio/x-pn-realaudio-plugin',
            'ra'    =>  'audio/x-realaudio',
            'rv'    =>  'video/vnd.rn-realvideo',
            'wav'   =>  array('audio/x-wav', 'audio/wave', 'audio/wav'),
            'bmp'   =>  array('image/bmp', 'image/x-windows-bmp'),
            'gif'   =>  'image/gif',
            'jpeg'  =>  array('image/jpeg', 'image/pjpeg'),
            'jpg'   =>  array('image/jpeg', 'image/pjpeg'),
            'jpe'   =>  array('image/jpeg', 'image/pjpeg'),
            'png'   =>  array('image/png',  'image/x-png'),
            'tiff'  =>  'image/tiff',
            'tif'   =>  'image/tiff',
            'css'   =>  'text/css',
            'html'  =>  'text/html',
            'htm'   =>  'text/html',
            'shtml' =>  'text/html',
            'txt'   =>  'text/plain',
            'text'  =>  'text/plain',
            'log'   =>  array('text/plain', 'text/x-log'),
            'rtx'   =>  'text/richtext',
            'rtf'   =>  'text/rtf',
            'xml'   =>  'text/xml',
            'xsl'   =>  'text/xml',
            'mpeg'  =>  'video/mpeg',
            'mpg'   =>  'video/mpeg',
            'mpe'   =>  'video/mpeg',
            'qt'    =>  'video/quicktime',
            'mov'   =>  'video/quicktime',
            'avi'   =>  'video/x-msvideo',
            'movie' =>  'video/x-sgi-movie',
            'doc'   =>  'application/msword',
            'docx'  =>  array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'),
            'xlsx'  =>  array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'),
            'word'  =>  array('application/msword', 'application/octet-stream'),
            'xl'    =>  'application/excel',
            'eml'   =>  'message/rfc822',
            'json' => array('application/json', 'text/json')
        );
  • 写回答

5条回答 默认 最新

  • dongxing5525 2014-01-28 07:24
    关注

    Replace:

    'allowed_types' => 'text/plain|text/csv|csv',
    

    With:

    'allowed_types' => 'text/plain|text/anytext|csv|text/x-comma-separated-values|text/comma-separated-values|application/octet-stream|application/vnd.ms-excel|application/x-csv|text/x-csv|text/csv|application/csv|application/excel|application/vnd.msexcel',
    

    Oh, and WHY are you using a max width and height for a CSV file?

    'max_width' => '1024',
    'max_height' => '768',
    

    remove them ;)

    评论

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)