이 글은 주로 PHP에서 아바타 업로드 미리보기를 구현하는 자세한 예를 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
사진 업로드는 다들 익숙하시겠지만, 향후 프로젝트에서는 아바타 업로드 등 페이지 새로고침 방식을 사용하여 사진을 업로드하지 못할 수도 있습니다. 업로드를 확인하면 양식을 통해 업로드되지 않습니다. 업로드를 새로 고치려면 제출을 클릭하세요. 두 개의 비동기 비새로고침 업로드 사진 + 사진 미리보기를 소개하겠습니다. 첫 번째는 이미 만들어진 uploadfy 플러그인을 통해 업로드하는 것입니다. 인터넷에는 많은 예가 있습니다.
하지만 제가 중점적으로 소개해드릴 것은 두 번째 방법인 Ajax를 통해 이미지를 업로드하는 방법입니다. uploadfy 플러그인을 사용하려면 장치가 swf 형식의 Flash를 지원해야 하기 때문에 첫 번째 방법은 대부분의 휴대폰에서 사용할 수 없습니다. 먼저 업로드 원칙에 대해 설명하겠습니다. js를 통해 파일 텍스트 필드를 제어합니다. 사진을 선택한 후 Ajax를 통해 비동기적으로 양식을 제출한 다음 사진의 위치를 반환 값으로 사용하고 js를 사용하여 src를 설정합니다. img의 속성을 반환 값으로 사용합니다.
업로드 아바타 영역:
코드:
<!DOCTYPE html > <html> <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="external nofollow" 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) --> <p class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <p class="modal-dialog"> <p class="modal-content"> <p class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> × </button> <h4 class="modal-title" id="myModalLabel"> 上传头像 </h4> </p> <p 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" /> <p id="yl" class="kk"> <input type="file" name="file" id="file" onchange="document.getElementById('sc').submit()" /> </p> </form> <iframe style="display:none" name="shangchuan" id="shangchuan"> </iframe> </p> <p class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">关闭 </button> <!--<button type="button" class="btn btn-primary"> 提交更改 </button>--> </p> </p><!-- /.modal-content --> </p><!-- /.modal --> </p> </body> <script type="text/javascript"> //回调函数,调用该方法传一个文件路径,该变背景图 function showimg(url) { var p = document.getElementById("yl"); p.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" 속성을 통해 임시로 파일을 생성합니다. form form wamp 폴더 안의 tmp 디렉터리에 넣은 후, 백그라운드 php 프로그램을 통해 시스템에 파일을 저장합니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 추천:
jQuery+PHP편집 가능한 테이블 필드 콘텐츠를 구현하고 실시간으로 저장_jquery
PHP +MySQL+ jQuery 레이어를 마음대로 드래그하고 드래그 위치를 즉시 저장합니다.
위 내용은 PHP 아바타 업로드 미리보기 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!