PHP는 파일 업로드 및 다운로드의 업로드 원리와 구현을 실현합니다.

업로드 원칙

클라이언트 파일을 서버에 업로드한 후 서버측 파일(임시 파일)을 지정된 디렉터리로 이동합니다.

파일 업로드를 학습하면 사용 현상을 통해 파일 업로드의 본질을 볼 수 있습니다!


업로드 구현

1. 클라이언트 구성

파일 업로드 페이지(양식 페이지)를 선택하세요

다음 두 가지는 필수입니다.

  • 보내기 메서드는 POST

  • add enctype="multipart/form-data" attribute

index.php 코드는 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
 <meta name="format-detection" content="telephone=no" /> 
<title>文件上传</title>
<meta charset="utf-8" />
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
请选择您要上传的文件:<br/>
<input type="file" name="myFile" /><br/>
<input type="submit" value="上传"/>
</form>
</body>
</html>

참고: 키는 양식의 속성입니다. type=은 입력 "파일"에 사용됩니다.

2. 업로드 처리 페이지

업로드 프로그램 처리 흐름도는 다음과 같습니다.

文件上传.png

upload .

<?php
header("Content-type:text/html;charset=utf-8");
//文件上传处理程序
//$_FILES:文件上传变量
/*echo "<pre>";
var_dump($_FILES);
exit;
echo "</pre>";*/
$filename=$_FILES['myFile']['name'];
$type=$_FILES['myFile']['type'];
$tmp_name=$_FILES['myFile']['tmp_name'];
$size=$_FILES['myFile']['size'];
$error=$_FILES['myFile']['error'];
 
//将服务器上的临时文件移动到指定位置
//方法一move_upload_file($tmp_name,$destination)
//move_uploaded_file($tmp_name, "uploads/".$filename);//文件夹应提前建立好,不然报错
//方法二copy($src,$des)
//以上两个函数都是成功返回真,否则返回false
//copy($tmp_name, "copies/".$filename);
//注意,不能两个方法都对临时文件进行操作,临时文件似乎操作完就没了,我们试试反过来
copy($tmp_name, "copies/".$filename);
move_uploaded_file($tmp_name, "uploads/".$filename);
//能够实现,说明move那个函数基本上相当于剪切;copy就是copy,临时文件还在
 
//另外,错误信息也是不一样的,遇到错误可以查看或者直接报告给用户
if ($error===0) {
  echo "上传成功!";
}else{
  switch ($error){
    case 1:
      echo "超过了上传文件的最大值,请上传2M以下文件";
      break;
    case 2:
      echo "上传文件过多,请一次上传20个及以下文件!";
      break;
    case 3:
      echo "文件并未完全上传,请再次尝试!";
      break;
    case 4:
      echo "未选择上传文件!";
      break;
    case 5:
      echo "上传文件为0";
      break;
  }
}

업로드를 클릭하면 다음이 나타납니다.

QQ截图20161102150906.png

참고: 업로드된 이미지를 저장하려면 upload.php와 동일한 디렉터리에 새 업로드 폴더를 만들어야 합니다. 그렇지 않으면 오류가 보고됩니다.

$_FILES가 파일인 경우 변수를 업로드하고 인쇄하세요.

QQ截图20161102150613.png

결과는 모두가 이해할 수 있는 2차원 배열입니다. : tmp_name 임시 파일 이름; 오류 오류 메시지(코드 이름, 나중에 사용할 수 있음)

upload.php 뒤에 있는 부분은 오류 보고 정보를 사용하여 사용자에게 피드백합니다.



지속적인 학습
||
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no" /> <title>文件上传</title> <meta charset="utf-8" /> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> 请选择您要上传的文件:<br/> <input type="file" name="myFile" /><br/> <input type="submit" value="上传"/> </form> </body> </html>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~