Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk memuat naik berbilang imej dalam php
Cara melaksanakan muat naik berbilang imej dalam PHP: 1. Buat kod HTML dan muatkan komponen swfupload dan kilat 2. Proses muat naik dalam PHP dan kembalikan alamat imej yang dimuat naik; ; 4. Simpan sahaja alamat imej ke pangkalan data.
Persekitaran pengendalian artikel ini: sistem Windows 7, versi thinkphp v5.1, komputer DELL G3
Cara untuk memuat naik berbilang imej dengan php?
Cara memuat naik berbilang gambar dalam PHP:
Mula-mula muat naik gambar untuk menunjukkan kesannya, jika perlu, muat turun dan pelajari. Ia tidak semestinya dalam ThinkPHP, cuma saya sedang belajar menggunakan ThinkPHP untuk pembangunan.
[Persediaan] Apa yang anda perlukan sekarang ialah memuat turun swfupload.js Terdapat banyak di Internet Anda boleh menggunakan Baidu sendiri. Terangkan idea atau proses dahulu, dan kemudian tambah kod.
Keseluruhan proses muat naik berbilang imej
1. Tulis kod html, termasuk kod html untuk kesan yang akan dipaparkan selepas memuat naik, dan memuatkan komponen swfupload dan kilat
2. Selepas menambah imej, muat naik ke php untuk memproses muat naik dan mengembalikan alamat imej yang dimuat naik, dan memuatkannya ke dalam kawasan pratonton.
3. Selepas mengklik X di sudut kanan atas setiap gambar, ajax memanggil kaedah php untuk memadam gambar dalam kawasan pratonton.
4. Apabila menambah gambar dan memadam gambar dalam kawasan pratonton, nilai medan tersembunyi akan ditukar, supaya alamat gambar boleh disimpan ke pangkalan data selepas melengkapkan keseluruhan borang penyerahan muat naik. (Bergantung kepada keperluan)
[Bahagian kod] Tulis kod html dahulu. (Fail css tidak akan disiarkan)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Cache-control" content="private, must-revalidate" /> <title>flash无刷新多图片上传</title> <script type="text/javascript"> var path='__STYLE__'; var url='__URL__'; </script> <script type="text/javascript" src="__STYLE__/js/jquery.js"></script> <script type="text/javascript" src="__STYLE__/js/swfupload.js"></script> <script type="text/javascript" src="__STYLE__/js/handlers.js"></script> <link href="__STYLE__/css/default.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> var swfu; window.onload = function () { swfu = new SWFUpload({ upload_url: "__URL__/uploadImg", post_params: {"PHPSESSID": "<?php echo session_id();?>"}, file_size_limit : "2 MB", file_types : "*.jpg;*.png;*.gif;*.bmp", file_types_description : "JPG Images", file_upload_limit : "100", file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, button_image_url : "__STYLE__/images/upload.png", button_placeholder_id : "spanButtonPlaceholder", button_width: 113, button_height: 33, button_text : '', button_text_style : '.spanButtonPlaceholder { font-family: Helvetica, Arial, sans-serif; font-size: 14pt;} ', button_text_top_padding: 0, button_text_left_padding: 0, button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT, button_cursor: SWFUpload.CURSOR.HAND, flash_url : "__STYLE__/swf/swfupload.swf", custom_settings : { upload_target : "divFileProgressContainer" }, debug: false }); }; </script> </head> <body> <form action="__URL__/s" method="post"> <div style="width: 610px; height: auto; border: 1px solid #e1e1e1; font-size: 12px; padding: 10px;"> <span id="spanButtonPlaceholder"></span> <div id="divFileProgressContainer"></div> <div id="thumbnails"> <ul id="pic_list" style="margin: 5px;"></ul> <div style="clear: both;"></div> </div> </div> <input type="hidden" name="s" id="" value=""/> <input type="submit" value="提交" /> </form> </body> </html>
Mari kita bercakap tentang item konfigurasi swfupload secara terperinci
upload_url ialah php alamat untuk memuat naik pemprosesan imej
had_saiz_failHad saiz_muat naik
had_muat naik_fail Hadkan bilangan gambar yang boleh dimuat naik oleh pengguna pada satu masa, 0 bermakna tiada had
fail_queue_error_handler
file_dialog_complete_handler Tambah kotak pilihan muat naik fail Kaedah untuk dilaksanakan selepas ditutup
upload_error_handler Kaedah untuk dilaksanakan apabila ralat muat naik fail berlaku
upload_success_handler Kaedah untuk dilaksanakan selepas muat naik fail berjaya
upload_complete_handler Kaedah untuk dilaksanakan selepas muat naik fail selesai
debug: false Jika anda ingin mengkaji swfupload, anda boleh menetapkan ini kepada benar dalam mod nyahpepijat
Langkah seterusnya ialah kod php untuk memuat naik imej. Kelas muat naik TP yang digunakan di sini adalah mudah dan mudah difahami
function uploadImg() { import('ORG.Net.UploadFile'); $upload = new UploadFile();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $savepath='./uploads/'.date('Ymd').'/'; if (!file_exists($savepath)){ mkdir($savepath); } $upload->savePath = $savepath;// 设置附件上传目录 if(!$upload->upload()) {// 上传错误提示错误信息 $this->error($upload->getErrorMsg()); }else{// 上传成功 获取上传文件信息 $info = $upload->getUploadFileInfo(); } print_r(J(__ROOT__.'/'.$info[0]['savepath'].'/'.$info[0]['savename'])); }
Selepas muat naik berjaya, bergema atau print_r mengeluarkan alamat kerana ia menggunakan ajax.
Pratonton kod setempat
function uploadSuccess(file, serverData){ addImage(serverData); var $svalue=$('form>input[name=s]').val(); if($svalue==''){ $('form>input[name=s]').val(serverData); }else{ $('form>input[name=s]').val($svalue+"|"+serverData); } } function addImage(src){ var newElement = "<li><img class='content' src='" + src + "' style=\"width:100px;height:100px;\" alt="Bagaimana untuk memuat naik berbilang imej dalam php" ><img class='button' src="+window.path+"/images/fancy_close.png alt="Bagaimana untuk memuat naik berbilang imej dalam php" ></li>"; $("#pic_list").append(newElement); $("img.button").last().bind("click", del); }
serverData ialah alamat imej yang dikembalikan dalam php Selepas kembali, hubungi terus kaedah addImage , muatkan alamat ke dalam ul. Pada masa yang sama, kemas kini nilai dalam medan tersembunyi
Padam tetapan imej
var del = function(){ // var fid = $(this).parent().prevAll().length + 1; var src=$(this).siblings('img').attr('src'); var $svalue=$('form>input[name=s]').val(); $.ajax({ type: "GET", //访问WebService使用Post方式请求 url: window.url+"/del", //调用WebService的地址和方法名称组合---WsURL/方法名 data: "src=" + src, success: function(data){ var $val=$svalue.replace(data,''); $('form>input[name=s]').val($val); } }); $(this).parent().remove(); }
Kaedah Ajax, serahkan kepada kaedah php, jika berjaya, kemas kini val dalam medan tersembunyi dan memusnahkannya elemen.
function del() { $src=str_replace(__ROOT__.'/', '', str_replace('//', '/', $_GET['src'])); if (file_exists($src)){ unlink($src); } print_r($_GET['src']); exit(); }
Kaedah pemadaman adalah sangat mudah, iaitu memadam fail dengan alamat yang dihantar oleh ajax dan mengembalikan alamat yang dipadamkan akan memproses dan mengemas kini val secara automatik medan tersembunyi
Keseluruhan kaedah swfupload ThinkPHP untuk memuat naik imej selesai, sangat mudah~
Pembelajaran yang disyorkan: "Tutorial Video PHP "
Atas ialah kandungan terperinci Bagaimana untuk memuat naik berbilang imej dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!