рд╢реБрдн рджреЛрдкрд╣рд░
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ, рдореИрдВ CodeIgniter рдХреЗ рд▓рд┐рдП AJAX рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдвреВрдВрдв рд░рд╣рд╛ рдерд╛ред рд╡рд┐рднрд┐рдиреНрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХреАред рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рднреА рд╕рд░рд▓ рдирд╣реАрдВ рдерд╛ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдерд╛ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ
jQuery рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдбрд░ рдХреА рдЦреЛрдЬ рдХреАред "рд╡рд╣ рдмрд╛рдХреА рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ" - рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЕрдВрддрд░
рд╕рд╛рджрдЧреА рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдкреНрд░рд▓реЗрдЦрди рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ, рд╕рднреА рдХреЙрд▓рдмреИрдХ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред
рдЖрдЬ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ + рдбреНрд░рдЧ рдФрд░ рдХреЛрдбрдЖрдИрдЧреНрдирд┐рдЯрд░ рдореЗрдВ рдбреНрд░реЙрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯ рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред
jQuery рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдбрд░ + CodeIgniter
рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░, CodeIgniter рд╣рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ
$ рдпрд╣-> рд▓реЛрдб-> рдкреБрд╕реНрддрдХрд╛рд▓рдп ('рдЕрдкрд▓реЛрдб'); , рдЬреЛ рдЖрдкрдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЫрд╡рд┐ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЖрдХрд╛рд░, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рджреНрд╡рд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ INPUT рдкрд░ рдереЛрдбрд╝реЗ рдереЛрдбрд╝реЗ рдкреНрд░рддрд┐рдмрдВрдз рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред INPUT рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░
рдирд╛рдо = "userfile" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдВ рдЬреЛ рдЕрдкрд▓реЛрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реЗрд╡ рдХрд░реЗрдЧрд╛ред
PHP рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:public function upload(){ $config['upload_path'] = "/application/uploads/"; $config['allowed_types'] = "jpg|jpeg|png|gif|flv|mp4|wmv|doc|docx|xsl|xslx|ppt|pptx|zip|rar|tar"; $config['max_size'] = 2048; $config['max_width'] = 800; $config['max_height'] = 600; $config['encrypt_name'] = TRUE; $this->load->library('upload', $config); if ($this->upload->do_upload() == false) { $error = array('error' => $this->upload->display_errors()); echo json_encode($error); }else{ $data = $this->upload->data(); echo json_encode($data); } }
рдЪреЗрддрд╛рд╡рдиреА! рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреБрдордд_рдЯрд╛рдЗрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рд╛рдкрддрд╛ MIME- рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓
/application/config/mimes.php рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рддреИрдпрд╛рд░ рд╣реИред рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ Github
jQuery рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд▓рдЧрдЗрди рдорд╣рд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрди рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдХреЗрд╡рд▓ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ, рдбреНрд░рдЧ рдФрд░ рдбреНрд░реЙрдк рдФрд░ рдкреНрд░рдЧрддрд┐ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдЬреЗрдПрд╕ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ:
- jquery.fileupload.js - jquery.fileupload-video.js - jquery.fileupload-process.js - jquery.iframe-transport.js - upload.js
рдФрд░ CSS рдлрд╝рд╛рдЗрд▓:
- css/jquery.fileupload.css
рд╣рдорд╛рд░реЗ INPUT рдХреЛ рдкреЗрдЬ рдкрд░ рдЬреЛрдбрд╝реЗрдВ:
<?php echo form_open_multipart('/admin/upload', array('id' => 'fileupload')); ?> <span class="fileinput-button"> <span> </span> <input type="file" name="userfile" multiple> </span> <?php echo form_close(); ?>
рдмрд╣реБрдд рдХреБрдЫ рдмрдЪрд╛ рдирд╣реАрдВ рд╣реИ - upload.js рд▓рд┐рдЦреЗрдВ, рдЬреЛ INPUT рдлрд╝реАрд▓реНрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдШрдЯрдирд╛ рдХреЛ рд╕реБрдиреЗрдЧрд╛ рдФрд░ рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ред "рдФрд░ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреНрд░рдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд╣рд╛рдБ рд╣реИ?" рдЖрдк рдкреВрдЫреЗрдВ рдбреНрд░рдЧ рдФрд░ рдбреНрд░реЙрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА jQuery рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рд╕рдВрд╡рд╛рдж рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ рдЕрдВрдд рдореЗрдВ Upload.js
$(document).ready(function(){ $('#fileupload').fileupload({ dataType: 'json', progressall: function (e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); $('.progress .bar').css('width', progress + '%'); }, done: function (e, data) { if(data.result.error != undefined){ $('#error').html(data.result.error);
рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рдорд╛рд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдбрд╛рдЙрдирд▓реЛрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдирд╣реАрдВ рд╣реИред JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА Data.Result рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рд╡реИрд╕реЗ, рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдбреЗрдЯрд╛) рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ: рднреЗрдЬреА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рдпрд╣ рд╕рдм, рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВред