61581229 发表于 2017-3-27 07:32:04

PHP 学习小结(三)—— PHP 上传原理及应用

  FORM标签enctype属性




表单中enctype="multipart/form-data
"的意思,是设置表单的MIME
编码。默认情况,

这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;

只有使用了multipart/form-data
,才能完整的传递文件数据

<form enctype="multipart/form-data" method="post" name="upform">
<input name="upfile" type="file">
  $_FILES 系统函数





$_FILES['myFile']['name ']   客户端文件的原名称 。
$_FILES['myFile']['type ']   文件的 MIME 类型 ,例如"image/gif"。
//    image/jpg
//    image/jpeg
//    image/png
//    image/pjpeg
//    image/gif
//    image/bmp
//    image/x-png
//    application/x-zip-compressed
$_FILES['myFile']['size ']   已上传文件的大小 ,单位为字节 。
$_FILES['myFile']['tmp_name ']   储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error ']   该文件上传相关的错误代码 。
//    0; 文件上传成功。
//    1; 超过了文件大小php.ini中。
//    2; 超过了文件大小 MAX_FILE_SIZE 选项指定的值。
//    3; 文件只有部分被上传。
//    4; 没有文件被上传。
//    5; 上传文件大小为0。
   move_uploaded_file 函数




  
上传后移动
文件到目标位置
的函数

move_uploaded_file(临时文件,目标位置和文件名);

is_uploaded_file 函数




  判断上传MIME类型的文件函数

move_uploaded_file(MIME);
  示例代码:





<?php
// 判断文件是否上传
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
$upfile = $_FILES["upfile"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
// 判断文件类型,图片格式的才允许上传
switch ($type) {
case 'image/pjpeg': $ok = 1;
break;
case 'image/jpeg': $ok = 1;
break;
case 'image/gif': $ok = 1;
break;
case 'image/png': $ok = 1;
break;
}
if ($ok && $error == '0') {
// 移动文件到指定目录
move_uploaded_file($tmp_name, 'up/'.$name);
echo "上传成功";
}
}
?>
<form action="" enctype="multipart/form-data" method="post" name="up">
上传文件:
<input name="upfile" type="file">
<input type="submit" value="上传"><br>
</form>
页: [1]
查看完整版本: PHP 学习小结(三)—— PHP 上传原理及应用