Hot For Coding

PHP上传文件

HTML页面

form表单要注意几点

  • enctype属性必须multipart/form-data
  • method属性必须post

如以下这个表单

upload.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" /> 
  <br />
  <input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

PHP处理程序

PHP主要从$_FILES这个全局对象里获取上传文件

upload_file.php

<?php
/**
 * PHP文件上传处理页面
 * 琼台博客 www.qttc.net
 */

// 定义提示函数
function alert($msg){
  return '<script type="text/javascript">alert("'.$msg.'");window.history.back(-1);</script>'; 
}

// 定义允许的文件类型
$allowType = array('image/jpeg','image/gif','image/jpg');

// 定义路径,可以是绝对路径,或者相对路径都可以 
$filePath  = './uploadFileDir/';

// 接收表单信息 其中里边写的 file 值是 静态页form表单里的name值
$file = $_FILES['file'];

// 第一步,判断上传的文件是否有错误
if( $file['error'] !== 0 ){
  exit(alert('文件上传错误')); 
}

// 第二步,判断文件大小,这里的102400是字节,换算为kb就是100kb
if( $file['size'] > 102400 ){
  exit(alert('文件过大')); 
}

// 第三步,判断文件类型
if( !in_array(mime_content_type($file['tmp_name']),$allowType) ){
  exit(alert('文件类型错误')); 
}

// 第四步,判断路径是否存在,如果不存在则创建
if( !file_exists($filePath) &&  !mkdir($filePath,0777,true) ){
  exit(alert('创建目录错误'));
}

// 第五步,定义上传后的名字及路径 
$filename = time().'_'.$file['name'];

// 第六步,复制文件
if( !copy($file['tmp_name'],$filePath.$filename) ){
  exit(alert('上传文件出错,请稍候重试')); 
}

// 第七步,删除临时文件
unlink($file['tmp_name']);

// 提示上传成功
echo alert('恭喜,上传文件['.$filename.']成功!');
分享

TITLE: PHP上传文件

LINK: https://www.qttc.net/46-php-upload-example.html

NOTE: 原创内容,转载请注明出自琼台博客