<script type="text/javascript"> function userUpload(){ var fd=new FormData(); fd.append("userImage",document.getElementById("userImage").files[0]); //將本地文件保存到FormData中 var xhr= new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(xhr.readyState!=4){ return; } if(xhr.status==200){ if(xhr.responseText=="success"){ //上傳成功 alert("頭像上傳成功!"); location.reload(); }else{//上傳失敗 alert("頭像上傳失敗!"); } } } xhr.open("POST","upload.php",true); //使用POST方法傳輸FormData xhr.send(fd); } </script> <form method="POST" enctype="multipart/form-data"> <input type="file" name="userImage" id="userImage"/> <button type="button" onclick="userUpload()">上傳頭像</button> </form>
2.使用Flash組件進行大文件切片上傳并展示上傳進度。function uploadStart(file){ var fileRef=document.getElementById("fileRef"); fileRef.browse(["*.jpg","*.jpeg","*.png","*.gif"]); //限定上傳文件格式 var upType = file.name.split(".").pop().toLowerCase(); if($.inArray(upType,["jpg","jpeg","png","gif"])<0){ //檢查上傳文件格式 alert("請上傳正確格式的圖片!"); return false; } fileRef.upload(URL, file.id,UPLOADTYPE); //調用Flash上傳函數 } function uploadProgress(file,bytesLoaded,bytesTotal){ var pct=bytesLoaded/bytesTotal*100+"%"; $("#"+file.id+" .progressbar").css("width",pct); $("#"+file.id+" .textProgressbar").html(pct+" Complete"); } function uploadComplete(file,response){ if(response.hasOwnProperty("error")){ //處理上傳失敗情況 alert(response.error); }else if(response.hasOwnProperty("success")){ //處理上傳成功情況 alert(response.success); } }
3.利用php對上傳文件進行接收處理并存儲至服務器。<?php $uploads_dir = '/user/images/'; //設置存儲路徑 if(($_FILES["userImage"]["type"]=="image/jpeg")||($_FILES["userImage"]["type"]=="image/png")||($_FILES["userImage"]["type"]=="image/gif")&&$_FILES["userImage"]["size"]<1048576){ //接收文件并存儲 $tmp_name=$_FILES["userImage"]["tmp_name"]; $name=$_FILES["userImage"]["name"]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); echo "success"; //上傳成功 }else{ echo "error"; //上傳失敗 } ?>總結 以上代碼只是php flash上傳頭像最基本的實現方式之一,要保證上傳頭像的安全和穩定,還需要加入一些安全驗證機制和錯誤處理。希望本文的介紹對大家有所幫助,更好的完善php flash上傳頭像功能。