本文主要和大家分享Ajax和PHP實作非同步上傳頭像實例,希望能幫助大家。
效果截圖:
上傳頁面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> </head> <body> 头像:<img id="avatar" src="" height="35" width="35" alt=""><br /> 选择文件:<input type="file" id="file1" /><br /> <input type="button" id="upload" value="上传" /> <span id="result"></span> <img src="5fd411e985d2c939b90e2dfb.gif" height="100" width="100" style="display:none" id="imgWait" /> <script src="jquery-1.11.2.min.js"></script> <script> $(function () { $("#upload").click(function () { $("#imgWait").show(); var formData = new FormData(); formData.append("myfile", document.getElementById("file1").files[0]); $.ajax({ url: "upload.php", type: "POST", dataType: 'json', data: formData, /** *必须false才会自动加上正确的Content-Type,否则会执行error步骤 */ contentType: false, /** * 必须false才会避开jQuery对 formdata 的默认处理,否则会报Uncaught TypeError: Illegal invocation * XMLHttpRequest会对 formdata 进行正确的处理 */ processData: false, success: function (data) { if(data.code == 200){ $('#avatar').attr('src',data.datas.filename); } $('#result').html(data.msg); $("#imgWait").hide(); setTimeout(function(){ $('#result').html(''); }, 1200); }, error: function () { alert("上传失败!"); $("#imgWait").hide(); } }); }); }); </script> </body> </html>
後台程式碼:
<?php $tmp_name = $_FILES['myfile']['tmp_name']; $current_time = date("Y-m-d H-i-s"); if(is_uploaded_file($tmp_name)){ $filename = './'.$current_time.'.jpg'; $return = move_uploaded_file($tmp_name,$filename); $return ? output('200','上传成功!',['filename' => $filename]) : output('400','上传失败!'); }else{ output('555','非法文件!'); } function output($code,$msg,$datas = array()){ $outputData = array( 'code' => $code, 'msg' => $msg, 'datas' => $datas ); exit(json_encode($outputData)); }
相關推薦:
angularjs利用$http異步上傳Excel檔案方法分享
############################################################## ##php和ajax實作非同步上傳檔案或圖片程式碼分享######以上是Ajax和PHP實作非同步上傳頭像的詳細內容。更多資訊請關注PHP中文網其他相關文章!