本文實例講述了php+ajax無刷新上傳圖片的實現方法。分享給大家供大家參考,具體如下:
1.引入文件
<!--圖片上傳begin--> <script type="text/javascript" src="/js/jquery.form.js"></script> <script type="text/javascript" src="/js/uploadImg.js"></script> <link href="/css/uploadImg.css" rel="stylesheet" type="text/css" /> <!--圖片上傳end-->
2.html部分
<div class="upimg"> <input name="icon" type="text" class="imgsrc" value="<!--{$contents.icon}-->" /> <div class="showimg"> <!--{if $contents.icon}--> <img src="<!--{$contents.icon}-->" height="120px"> <!--{/if}--> </div> <div class="btn" style="height:20px;"> <span>添加圖片</span> <input class="fileupload" type="file" name="pic[]"> </div> </div>
3.給fileupload加上表單
/*圖片上傳*/ $(".fileupload").wrap("<form action='/bookstore/book/uploadpic' method='post' enctype='multipart/form-data'></form>"); //函數處理
4.ajax文件上傳
jQuery(function ($) { $(".fileupload").change(function(){ //選擇文件 if ('' === $(this).val()) return; var upimg = $(this).parent().parent().parent(); var showimg = upimg.find('.showimg'); var btn = upimg.find('.btn span'); var imgsrc = upimg.find('.imgsrc'); $(this).parent().ajaxSubmit({ //dataType: 'json', //數據格式為json beforeSend: function() { //開始上傳 showimg.empty(); //清空顯示的圖片 imgsrc.val(""); btn.html("上傳中..."); //上傳按鈕顯示上傳中 }, uploadProgress: function(event, position, total, percentComplete) { }, success: function(data) { //成功 //獲得後台返回的json數據,顯示文件名,大小,以及刪除按鈕 var img = data; //顯示上傳後的圖片 imgsrc.val(""); imgsrc.val(img); showimg.html("<img width='120' height='120' src='"+img+"'>"); btn.html("上傳成功"); //上傳按鈕還原 }, error:function(xhr){ //上傳失敗 btn.html("上傳失敗"); } }); }); });
5.後台進行處理
public function uploadpicAction(){ //圖片上傳和顯示 $data = ""; $src = $this->uploadFiles2($imgpath = "/upload/book" ,$filesname = "pic"); isset($src[0]['src']) && $src[0]['src'] ? $data = $this->concaturl($src[0]['src']) : null; echo $data; }
6.將返回的數據交給前端,進行一些處理。
進而提交到後台數據庫。
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP+ajax技巧與應用小結》、《php文件操作總結》、《PHP圖形與圖片操作技巧匯總》、《PHP網絡編程技巧總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。