【问题标题】:Upload image without form action using dropzone in codeigniter在 codeigniter 中使用 dropzone 上传没有表单操作的图像
【发布时间】:2018-12-26 00:33:05
【问题描述】:

在 CodeIgniter 中使用 dropzone 上传没有表单操作的图像。我需要在 dropzone 中上传没有表单操作的图像。这意味着,有一个表单,dropzone image 和其他字段都在表单中。首先当我们选择一张图片时,自动上传图片并保存在数据库中。并添加其他字段,然后提交表单操作。

【问题讨论】:

    标签: codeigniter dropzone.js


    【解决方案1】:

    您可以使用带有按钮的 AJAX 上传图片,但按钮必须位于带有 id 的表单标签下

    查看

    <form action="<?php echo SURL; ?>admin/registered_students/" id="file_completion_form" class="form-horizontal" method="post" enctype="multipart/form-data"> 
    <td>
                                        <input type="file" data-validation="" style="display: inline" name="undertaking" id="undertaking" value="" placeholder="" multiple="">
                                    </td>
                                    <td>
                                        <input type="hidden" id="student_id" name="student_id" value="<?=$student_id;?>">
                                        <button type="button" class="btn btn-info chk2" id="upload_undertaking">
                                            <i class="fa fa-upload"></i>
                                        </button>
                                    </td>
                                    <td>
                                        <span class="alert" style="display: none" id="msg">Updated</span>
                                    </td>
                                    <td id="download_undertaking">
                                        <a href="<?php echo SURL.'file/download/'.$files[0]['undertaking'];?>">
                                            <button type="button" class="btn btn-info chk2" id=""><i class="fa fa-download"></i></button>
                                        </a>
                                    </td>
    </form>
    

    JS

    $('#upload_undertaking').click(function(e)
        {
            e.preventDefault();
            var data = new FormData();
            var form_data = $('#file_completion_form').serializeArray();
            $.each(form_data, function (key, input)
            {
               data.append(input.name, input.value);
            });
            //input quatation
            var quotation_wip = $('input[name="undertaking"]')[0].files;
            if(quotation_wip.length>0)
            {
                for (var i = 0; i < quotation_wip.length; i++)
                {
                    data.append("undertaking[]", quotation_wip[i]);
                }
            }
            else
            {
                return 0;
                exit;
            }
            data.append('key', 'value');
            var student_id =  $('#student_id').val();
            $.ajax(
            {
                url:URL+'file_completion/'+student_id,
                type:'POST',
                data:data,
                cache:false,
                contentType: false,
                processData: false,
                success:function(data)
                {
                    if(data==2)
                    {
                        window.location.href=URL+'index/'+student_id;
                    }
                    else
                    {
                        var obj = jQuery.parseJSON(data);
                        // alert( obj.undertaking );
                        $("#undertaking span").html(obj.undertaking);
                        $("#download_undertaking").html('<a href="'+URL+'download/'+obj.undertaking+'"><button type="button" class="btn btn-info chk2" id=""><i class="fa fa-upload"></i></button></a>');
                        $("#msg").show();
                        setTimeout(function()
                        {
                            $("#msg").hide(); 
                        }, 
                        10000);
                    }
                }
            });
        });
    

    控制器

        public function file_completion1($student_id='',$document_name='')
    {
        // if($this->input->post('student_id'))
        // {
        // echo $this->input->post($student_id);
        // echo($student_id).'-';
        // echo($document_name);
        // exit();
            $filename=array();
            if(count($_FILES['copy_of_paid_fee_challan']['name']) > 0 && $_FILES['copy_of_paid_fee_challan']['name'] !='')
            {
                $files = $_FILES['copy_of_paid_fee_challan'];
                $count = count($_FILES['copy_of_paid_fee_challan']['name']);
                //echo $_FILES['file']['name'];exit();
                for($i=0; $i<$count;$i++)
                {
                    $config = array();
                    $projects_folder_path = './assets/uploads/';
                    $thumb = $projects_folder_path . 'thumb';
                    $_FILES['copy_of_paid_fee_challan']['name']     = $files['name'][$i];
                    $_FILES['copy_of_paid_fee_challan']['type']     = $files['type'][$i];
                    $_FILES['copy_of_paid_fee_challan']['tmp_name'] = $files['tmp_name'][$i];
                    $_FILES['copy_of_paid_fee_challan']['error']    = $files['error'][$i];
                    $_FILES['copy_of_paid_fee_challan']['size']     = $files['size'][$i];   
                    // $file_ext  = ltrim(strtolower(strrchr($_FILES['copy_of_paid_fee_challan']['name'],'.')),'.');  
                    // $file_name =    'oppein-'.date('YmdGis').'.'.$file_ext;        
                    $config['upload_path']      = $projects_folder_path;
                    $config['allowed_types']    = '*';
                    $config['encrypt_name']     = TRUE;
                    $config['overwrite']        = TRUE;
                    $config['file_name']        = $_FILES['copy_of_paid_fee_challan']['name'];
                    $this->load->library('upload', $config);
                    $this->upload->initialize($config);
                    if(!$this->upload->do_upload('copy_of_paid_fee_challan'))
                    {
                        $error_file_arr = array('error' => $this->upload->display_errors());                
                        $this->session->set_flashdata('err_message', $error_file_arr['error']);
                        $r=2;
                        echo json_encode($r);
                        exit();
                    }
                    else
                    {
                        $data['delete_record'] = $this->Common_model->select_single_records('uploads',$where=array('student_id'=>$student_id));
                        if(file_exists($projects_folder_path.$data['delete_record']['undertaking']))
                        {
                            unlink($projects_folder_path.$data['delete_record']['undertaking']);
                        }
                        $data_image_upload = array('upload_image_data' => $this->upload->data());
                        $image_name =$data_image_upload['upload_image_data']['file_name']; 
                        $full_path = $data_image_upload['upload_image_data']['full_path'];
                        // ------------------------------------------------------------------------ 
                        $this->load->library('image_lib');
                        $config['image_library']    = 'GD2';
                        $config['source_image']     = './assets/uploads/' . $image_name;
                        $config['maintain_ratio']   = TRUE;
                        $config['master_dim']   = 'auto';
                        $config['quality']  = 70;
                        $config['width'] = 1024;
                        $config['height'] = 768;
                        $config['new_image'] = './assets/uploads/' . $image_name;
                        $this->image_lib->initialize($config);
                        $this->image_lib->resize();
                        // ------------------------------------------------------------------------            
                    }
                    $filename[] = $image_name;
                } // end for loop                      
            }
            foreach ($filename as $key => $value)
            {
                $insert_image=array(
                    'copy_of_paid_fee_challan'=> $value,
                    // 'student_id' => $student_id,
                    // 'stage_id' => $stage_id,
                    'update_date' => date("Y-m-d g:i:s"),
                    // 'category_status' => 1,
                    // 'user_id' =>$this->session->userdata('user_id'),
                );
                // echo "<pre>";
                // print_r ($insert_image);
                // echo "</pre>";
                // exit();
                $add_image = $this->Common_model->update_table('uploads',$where=array('student_id'=>$student_id),$insert_image);                           
            }
            if ($add_image)
            {
                $record = $this->Common_model->select_single_records('uploads',$where=array('student_id'=>$student_id));
                echo json_encode($record);
            }
        // }
        // else
        // {
        //  $data['active']='registered_students';
        //  $this->load->view('admin/header',$data);
        //  $data['student_id']=$student_id;
        //  $data['error']='';
        //  $this->load->view('registration/file_completion',$data);
        //  $this->load->view('admin/footer',$data);
        // }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2016-06-08
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多