DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documenttitle>
head>
<body>
<form name=‘frm‘action="./uploadSave.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile" >input>
<input type="submit" name="submit" value="上传图片">input>
form>
body>
html>
php
header(‘content-type:text/html;charset=utf-8‘);
/**
* 上传文件:可以通过输入的参数设置上传的文件类型
* 上传文件的大小限制,和上传的路径
* @param [type] $myupfile [表单文件域name的名称]
* @param [type] $maxsize [允许上传的最大值]
* @param [type] $arr_mime [允许的MIME类型]
* @param [type] $path [上传的路径]
* @author qinxiaoshou
* 2017年9月6日
*/
function uploadfile($myupfile, $maxsize, $arr_mine, $path) {
//判断文件是否是通过 HTTP POST 上传的
// if (isset($_POST[‘submit‘])) {}
if(!is_uploaded_file($myupfile[‘tmp_name‘])) {
//如果有错误则直接停止脚本
echo "上传有错误,请重新上传";
}
//判断是否有错误
if ($myupfile[‘error‘]) {
echo "上传有错误,请重新上传";
}
//判断文件大小 -- 不允许上传大于2M的文件
if ($myupfile[‘size‘] > $maxsize) {
echo "上传文件过大,请重新上传";
}
//获取文件扩展名
$filename = $myupfile[‘name‘];
// //方法一
//strrpos 计算指定字符串在目标字符串中最后一次出现的 位置
//strrpos(haystack, needle);
//strrpos(大海, 针);
// $index = strrpos($filename,‘.‘);
// $ext = substr($filename,$index);
// echo "$ext";
//方法二
//strrchr - 查找指定字符在字符串的最后一次出现
$ext = strrchr($filename,‘.‘); // .jpg
// echo $ext;
//判断文件类型
//面向过程风格
$fs = finfo_open(FILEINFO_MIME_TYPE);
$mine = finfo_file($fs,$myupfile[‘tmp_name‘]);
//允许上传的文件类型
//$arr_mine = [‘image/jpeg‘,‘image/png‘];
//in_array — 检查数组中是否存在某个值
//in_array(needle, haystack)
if(!in_array($mine,$arr_mine)) {
die(‘文件的类型不正确,请重新上传‘);
}
//构建临时文件
$filename = $myupfile[‘tmp_name‘];
//构建目标文件
// $path = ‘./upload‘;
$destination = $path.‘/‘.date(‘YmdHis‘).$ext;
//将上传文件移动到新的位置返回布尔
//move_uploaded_file(filename,destination)
//move_uploaded_file(临时文件,自定义目标文件)
if(!move_uploaded_file($filename,$destination)) {
die(‘上传失败!‘);
}
}
二,多文件上传
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Documenttitle>
head>
<body>
<form name=‘frm‘ method=‘post‘ action=‘upload.php‘ enctype="multipart/form-data">
<table width="50%" border="2" align="center" rules="all" cellpadding="10">
<tr>
<th colspan="2">
上传文件:<br>
<input type="file" name="upload[]">input><br><br>
<input type="file" name="upload[]">input><br><br>
<input type="file" name="upload[]">input><br><br>
<input type="submit" name="submit" value="上传">input>
th>
tr>
table>
form>
body>
html>
php
header(‘content-type:text/html;charset=utf-8‘);
if (isset($_POST[‘submit‘])) {
/*echo "";
print_r($_FILES);
echo "
";
echo "
";*/
$arr = $_FILES[‘upload‘];
echo "";
print_r($arr);
echo "
";
echo "
";
foreach ($arr[‘tmp_name‘] as $key => $value) {
/*echo $key,$value,"
";
die;*/
//构建临时文件
//$filename = $_FILES[‘upload‘][‘tmp_name‘];
//构建目标文件
if( $arr[‘size‘][$key] >2*1024*1024){
die(‘no‘);
}
$path = ‘./upload‘;
//获取一个带前缀、基于当前时间微秒数的唯一ID。
$destination = $path.‘/‘.uniqid(‘itcast‘).‘.jpg‘;
//将上传的文件移动到新位置,返回布尔
//move_uploaded_file(filename, destination)
//move_uploaded_file(临时文件, 自定义目标文件)
if(!move_uploaded_file($value,$destination)){
die(‘上传失败!‘);
}
}
} else {
//如果直接访问此页面
echo "";
}
?>