미리보기가 포함된 PHP 아바타 업로드:
사진 업로드는 누구나 익숙합니다. 그러나 향후 프로젝트에서는 아바타 업로드와 같은 페이지 새로고침 방법을 사용하여 사진을 업로드하는 것이 허용되지 않을 수도 있습니다. 앨범에서 사진을 선택한 후 업로드를 확인하세요. 양식을 통해 제출을 클릭해도 새로고침 방식으로 업로드되지는 않습니다. 두 개의 비동기 비새로고침 업로드 사진 + 사진 미리보기를 소개하겠습니다. 첫 번째는 이미 만들어진 uploadfy 플러그인을 통해 업로드하는 것입니다. 인터넷에는 많은 예가 있습니다. 하지만 제가 중점적으로 소개해드릴 것은 두 번째 방법인 Ajax를 통해 이미지를 업로드하는 방법입니다. uploadfy 플러그인을 사용하려면 장치가 swf 형식의 Flash를 지원해야 하기 때문에 첫 번째 방법은 대부분의 휴대폰에서 사용할 수 없습니다. 먼저 업로드 원칙에 대해 말씀드리겠습니다. js를 통해 파일 텍스트 필드를 제어하고, 사진을 선택한 후 Ajax를 통해 비동기적으로 양식을 제출한 다음, 사진의 위치를 반환 값으로 사용하여 설정합니다. img의 src 속성을 반환 값으로 지정합니다.
<!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" /> <title>无标题文档</title> <link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <script src="bootstrap-3.3.7-dist/js/jquery-1.11.2.min.js"></script> <script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> <style type="text/css"> #yl{ width:200px; height:200px; background-image:url(img/avatar.png); background-size:200px 200px;} #file{ width:200px; height:200px; float:left; opacity:0;} .modal-content{ width:500px;} .kk{ margin-left:130px;} </style> </head> <body> <!-- 按钮触发模态框 --> <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal"> 上传头像 </button> <!-- 模态框(Modal) --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> × </button> <h4 class="modal-title" id="myModalLabel"> 上传头像 </h4> </div> <div class="modal-body"> <form id="sc" action="upload.php" method="post" enctype="multipart/form-data" target="shangchuan"> <input type="hidden" name="tp" value="" id="tp" /> <div id="yl" class="kk"> <input type="file" name="file" id="file" onchange="document.getElementById('sc').submit()" /> </div> </form> <iframe style="display:none" name="shangchuan" id="shangchuan"> </iframe> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">关闭 </button> <!--<button type="button" class="btn btn-primary"> 提交更改 </button>--> </div> </div><!-- /.modal-content --> </div><!-- /.modal --> </div> </body> <script type="text/javascript"> //回调函数,调用该方法传一个文件路径,该变背景图 function showimg(url) { var div = document.getElementById("yl"); div.style.backgroundImage = "url("+url+")"; document.getElementById("tp").value = url; } </script> </html>업로드 처리 페이지:
<?php if($_FILES["file"]["error"]) { echo $_FILES["file"]["error"]; } else { if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png")&& $_FILES["file"]["size"]<1024000000) { $fname = "./img/".date("YmdHis").$_FILES["file"]["name"]; $filename = iconv("UTF-8","gb2312",$fname); if(file_exists($filename)) { echo "<script>alert('该文件已存在!');</script>"; } else { move_uploaded_file($_FILES["file"]["tmp_name"],$filename); unlink($_POST["tp"]); echo "<script>parent.showimg('{$fname}');</script>"; } } }원리: 양식 양식의 enctype="multipart/form-data" 속성을 통해 임시로 파일을 wamp 폴더의 tmp에 넣습니다. 디렉터리에 저장한 다음 백그라운드 PHP 프로그램을 통해 시스템에 파일을 저장합니다.
위 내용은 PHP에서 아바타 업로드 미리보기 기능 구현 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!