> 백엔드 개발 > PHP 튜토리얼 > PHP 파일 업로드 및 아바타 미리보기 기능

PHP 파일 업로드 및 아바타 미리보기 기능

怪我咯
풀어 주다: 2023-03-12 22:38:01
원래의
1976명이 탐색했습니다.

이 글은 주로 파일 업로드의 PHP 구현과 아바타 미리보기 기능에 대한 관련 정보를 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

php 파일 업로드원칙은 양식 양식의 enctype을 통한 것입니다. ="multipart/form-data" 속성은 파일을 wamp 폴더의 tmp 디렉터리에 임시로 저장한 다음 백그라운드 PHP 프로그램을 통해 시스템에 파일을 저장합니다.

html 코드:

<form action="shangchuan.php" method="post" enctype="multipart/form-data">
 <input type="file" name="file" />
 <input type="submit" value="上传" />
</form>
로그인 후 복사

백엔드 처리 인터페이스(shangchuan.php):

다음 사항을주의해야 할 사항:

1 업로드된 파일 유형을 제어합니다
2. of upload files
3. 파일 이름 중복 방지
저장된 파일 이름 수정
사용자 이름 + 타임스탬프 + 임의의 숫자 + 파일 이름
일련번호

폴더를 사용할 때는 경로를 미리 생성해야 합니다.

4. 파일 저장

//判断文件上传是否出错
if($_FILES["file"]["error"])
{
 echo $_FILES["file"]["error"];
}
else
{
 //控制上传文件的类型,大小
 if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000)
 {
  //找到文件存放的位置
  $filename = "./file/".date("YmdHis").$_FILES["file"]["name"];
   
  //转换编码格式
  $filename = iconv("UTF-8","gb2312",$filename);
   
  //判断文件是否存在
  if(file_exists($filename))
  {
   echo "该文件已存在!";
  }
  else
  {
   //保存文件
   move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
  }
 }
 else
 {
  echo "文件类型不正确!";
 }
}
로그인 후 복사

업로드를 클릭하면 시스템의 지정된 경로에 파일이 저장됩니다.

저장 후 지정된 방법에 따라 파일 이름을 바꿉니다.

아바타 업로드 미리보기

원리: html 인터페이스에서 아바타 크기에 맞게 p를 만들고 배경을 설정합니다. 업로드된 아바타, p 내부에 파일 업로드를 위한 입력을 하고, 투명도를 0으로 설정합니다.

이렇게 이 p를 클릭하면 업로드와 동일한 효과가 나타납니다.

<title>无标题文档</title>
<style type="text/css">
#yl{ width:200px; height:300px; background-image:url(img/11.png); background-size:200px 300px;}
#file{ width:200px; height:300px; float:left; opacity:0;}
</style>
</head>
 
<body>
 
<form id="sc" action="chuli.php" method="post" enctype="multipart/form-data" target="shangchuan">
  
 <input type="hidden" name="tp" value="" id="tp" />
  
 <p id="yl">
  <input type="file" name="file" id="file" onchange="document.getElementById(&#39;sc&#39;).submit()" />
 </p>
  
  
  
</form>
 
<iframe style="display:none" name="shangchuan" id="shangchuan">
</iframe>
 
 
</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 처리 인터페이스(chuli.php):

<?php
 
if($_FILES["file"]["error"])
{
 echo $_FILES["file"]["error"];
}
else
{
 if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png")&& $_FILES["file"]["size"]<1024000)
 {
  $fname = "./img/".date("YmdHis").$_FILES["file"]["name"]; 
   
  $filename = iconv("UTF-8","gb2312",$fname);
   
  if(file_exists($filename))
  {
   echo "<script>alert(&#39;该文件已存在!&#39;);</script>";
  }
  else
  {
   move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
    
   unlink($_POST["tp"]);
    
   echo "<script>parent.showimg(&#39;{$fname}&#39;);</script>";
  }
   
 }
}
로그인 후 복사

위 내용은 PHP 파일 업로드 및 아바타 미리보기 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿