2015-05-11 3 views
-1

Я хочу загрузить изображение с предварительным просмотром после использования jQuery dropzone.спросить о jquery upload несколько изображений

Сначала, если вы загружаете только одно изображение с помощью dropzone, изображение появляется, а уникальное имя - с именем даты + rndom.

это первый способ,

второй путь, я хочу добавить одно изображение и дать уникальное имя и тоже должны сохранить его в базе данных тоже. Но когда второе изображение загружается, оно заменяет первое изображение

Есть ли способ сделать это

===================== ======================================

Это сценарий для выполнения нескольких загружаемых изображений, Место на виде: header.php. Я сделал ту же функцию для другой функции dropzone в header.php. просто замените идентификатор тега div и тег ввода в представлении

<script type="text/javascript"> 
$(function() { 
    var name = Date.now(); 
    var key = Math.floor((Math.random() * 99999999999) + 1); 
    var unique = name+'-'+key; 

    $("div#eyeDropZone").dropzone({ 
     url:'http://localhost/work/uploadimage/multiple/'+unique, 

     paramName:'foto', // param to upload image name to db 
     uploadMultiple:false, 
     maxFiles:2, 

     acceptedFiles: '.jpg', 
     maxFilesize:1, 
     addRemoveLinks: 'no', 
     dictFileTooBig: "File size ({{filesize}}MB). Max File Size: {{maxFilesize}}MB.", 
     dictInvalidFileType: "JPG Only", 


     init: function() { 
     this.on("maxfilesexceeded", function(file) { 
     this.removeAllFiles(); 
     this.addFile(file); 

     }); 
     this.on("removedfile", function(file, xhr, formData) { 
     $("#filename").val(''); 
     }); 
     }, 

     accept: function(file, done) { 
     var filename = file.name; 
     $("#filename").val(unik); 
     done(); 
     } 
    }); 
}); 
</script> 

это контроллер, этот код был разработан другими пользователями. ему нужна моя помощь, чтобы немного поменяться, при первой загрузке сначала загрузите изображение в папку с помощью jQuery dropzone и удалите изображение из папки, а затем вставьте в базу данных, также сохраните изображение в папку.

public function birthday_upload($unique='') 
{ 
    error_reporting(0); 
    $this->form_validation->set_error_delimiters('<div style="border: 1px solid: #999999; background-color: #ffff99;">', '</div>'); 

    $config['image_library'] = 'gd2'; 
    $original_path      = './birthday/original'; 
    $resized_path      = './birthday/resized'; 
    $thumbs_path      = './birthday/thumb'; 
    $this->load->library('image_lib', $config); 

    unlink('./birthday/original/'.$uniks.'.jpg'); 
    unlink('./birthday/resized/'.$uniks.'.jpg'); 
    unlink('./birthday/thumb/'.$uniks.'.jpg'); 

    $config = array(
      'allowed_types' => 'jpg|jpeg', 
      'max_size'  => 1024, 
      'upload_path'  => $original_path, //upload directory 
      'file_name'  => $uniks, 
     ); 

    $gambar['filename'] = $uniks; 
    $this->load->library('upload', $config); 
    $this->upload->do_upload('foto'); 
    $image_data = $this->upload->data(); //upload the image 
    $image['foto'] = $image_data['file_name']; 

    //your desired config for the resize() function 
    $config = array(
      'source_image'  => $image_data['full_path'], //path to the uploaded image 
      'new_image'  => $resized_path, 
      'maintain_ratio' => false, 
      'width'   => 566, 
      'height'   => 238 
     ); 

    $this->image_lib->initialize($config); 
    $this->image_lib->resize(); 

    // for the Thumbnail image 
    $config = array(
      'source_image'   => $image_data['full_path'], 
      'new_image'   => $thumbs_path, 
      'maintain_ratio'  => true, 
      'width'    => 100, 
      'height'    => 100 
     ); 

    //here is the second thumbnail, notice the call for the initialize() function again 
    $this->image_lib->initialize($config); 

    $this->birthday_m->simpan($gambar); 

} 

это как вставить изображение

public function simpan($gambar) 
{ 
    error_reporting(0); 

    $name_fb    = mysql_real_escape_string($this->input->post('name')); 
    $gender_fb   = mysql_real_escape_string($this->input->post('gender')); 
    $tempat_lahir_fb = mysql_real_escape_string($this->input->post('pob_child')); 
    $child_birth_fb = mysql_real_escape_string($this->input->post('birth_child')); 
    $email_fb     = mysql_real_escape_string($this->input->post('email')); 
    $address_fb   = mysql_real_escape_string($this->input->post('address')); 
    $nama_anak_fb   = mysql_real_escape_string($this->input->post('child_name')); 
    $filename_fb   = mysql_real_escape_string($this->input->post('foto_name').'.jpg'); 
    // add to the line below to save image name to database 
    $akta_fb     = mysql_real_escape_string($this->input->post('akta_name').'.jpg'); 

    $data= array(
    'name_fbd'     => $name_fb, 
    'email_fbd'     => $email_fb, 
    'address_fbd'   => $address_fb, 
    'nama_anak_fbd'   => $nama_anak_fb, 
    'tempat_lahir_fbd' => $tempat_lahir_fb, 
    'child_birth_fbd'  => $child_birth_fb, 
    'filename_fbd'   => $filename_fb, 
    'filename_akta'   => $akta_fb, 
    'gender_fbd'   => $gender_fb, 
    'dateregister_fbd' => $now, 
    'voucher_fbd'   => $voucher, 
    'handphone_fbd'   => $handphones, 
    // 'dateupdate'  => '' 
); 


    $this->db->insert('mydatabase',$data); 
    { 
    redirect(''.base_url().'birthdays/success/'); 
    } 
} 

это мнение, я сделал другие функции Dropzone для новой области Dropzone, чтобы загрузить изображение, это успех показать изображение в области Dropzone, но первое изображение было заменено вторым изображением. и filaname показывают только один снизу.

<div class="dropzone" id="my-awesome-dropzone"> 
    <div id="eyeDropZone" class="dropzone" ></div> 
    <input multiple name="foto_name" type="text" id="filename" required readonly /> 

</div> 
<div class="dropzone" id="my-awesome-dropzone"> 
    <div id="eyeDropZone" class="dropzone" ></div> 
    <input multiple name="akta_name" type="text" id="filenameakta" required readonly/> 
</div> 
+0

Это действительно вопрос обработки на конце бит. Какой кодовый язык вы используете там? PHP или другое? Я делаю несколько загрузок, но использую исходное имя файла, чтобы предотвратить перезапись, – Daniel

+0

извините за последнее время. Я использую php codeigniter @Daniel –

+0

Прежде всего, это плохая практика иметь имя id. и почему вам нужно два divs dropzone на той же странице? – Abhinav

ответ

0

Предполагаю, что вы хотите загрузить несколько файлов. Вы можете установить предел maxfile в DropZone Options

Когда пользователь попытается превысить лимит, произойдет событие maxfilesexceeded, и вы сможете выполнить свою проверку прямо там.

Dropzone.options.myDropzone = { 
      maxFiles: 2, 
     init: function() { 
    this.on("maxfilesexceeded", function(file){ 
     alert("No more files can be uploaded!"); 
    }); 
    } 
    } 

Если это не поможет решить вашу проблему, предоставьте сообщение об ошибке, если вы его получите.