2013-07-28 3 views
0

У меня есть сценарий для загрузки файла useignignign, но он по-прежнему использует кнопку отправки. Я хочу загрузить, не нажимая кнопку «Отправить». это мой сценарий:Как загрузить файл в codeigniter без кнопки отправки?

Контроллеры/gallery.php

<?php 
class Gallery extends CI_Controller{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    function index(){ 
     $this->load->model('MGallery'); 
     if($this->input->post('upload')){ 
      $this->MGallery->do_upload(); 
     } 

    $this->load->view('gallery_view'); 
    } 
} 
?> 

модели/mgallery.php

<?php 
class MGallery extends CI_Model{ 

var $gallery_path; 

public function __construct() 
{ 
    parent::__construct(); 
    $this->gallery_path = realpath(APPPATH . '../images'); 
} 

function do_upload(){ 
    $config = array(
     'allowed_types'=>'jpg|jpeg|gif|png', 
     'upload_path' => $this->gallery_path, 
     'max_size' => 2000 
    ); 

    $this->load->library('upload',$config); 
    $this->upload->do_upload(); 
    $image_data = $this->upload->data(); 

    $config = array(
     'source_image'=> $image_data['full_path'], 
     'new_image'=>$this->gallery_path . '/thumbs', 
     'maintain_ration'=>true, 
     'width'=>160, 
     'height'=>120 
    ); 

    $this->load->library('image_lib', $config); 
    $this->image_lib->resize(); 
    } 
} 

* Вид/gallery_view.php *

<!DOCTYPE HTML> 

<html lang="en-US"> 

    <head> 
     <title>Gallery With CI</title> 
     <meta charset="UTF-8"> 
    </head> 
    <body> 
     <div id="gallery"> 
     </div> 

     <div id="upload"> 

      <?php echo form_open_multipart('gallery'); ?> 
      <?php echo form_upload('userfile');?> 

      <?php echo form_submit('upload','Upload'); ?> 
      <?php echo form_close(); ?> 

     </div> 
</body> 

Что мне делать, если я хочу загрузить его без кнопки отправки?

ответ

1

Для того, чтобы загрузить файл, вам нужно будет вызвать некоторые функции JavaScript, когда файл просматривается. приведенный ниже код может помочь вам сделать это, используя библиотеку JQuery AJAX.

$upload_field_info = array('class' => 'file_upload', 'id' => 'file_upload', 'name' => 'file_upload'); 
echo form_input($upload_field_info); 

написать яваскрипт функции в виде:

$('#file_upload').change(function(){ 
var upload_data = $('#file_upload').val() 
var post_url = "<?php echo base_url();?>index.php/gallery/upload"; 
$.ajax({ 
    type: "POST", 
    url: post_url, 
    data: upload_data, 
    datatype: "json", 
    success: function(data) 
    { 
     $('#upload_result_div').html("<span class=success>File Uploaded!</span>"); 
    } 
}); 

И вы будете нуждаться в функции с именем «загрузить в вашем„“контроллера галереи!

+0

Вы бы дали мне более подробный скрипт в каждой модели, виде, контроллере? Я попробовал решение выше, но изображение, которое я загружаю, не хранится в папке назначения. извините, я все еще новичок. – dyn

Смежные вопросы