
一、上传文件表单
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title> File Uploads </title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
shopname: <input type="text" name="shopname" > <br>
shopprice: <input type="text" name="price"> <br>
shopnum : <input type="text" name="num"> <br>
<input type="hidden" name="MAX_FILE_SIZE" value="100000000">
shoppic1: <input type="file" name="pic"> <br>
<input type="submit" name="sub" value="上传">
</form>
</body>
</html>
二、上传后的处理
<?php
header('Content-Type:text/html;charset=utf8');
$fieldname='pic';
$filename=date('Y').date('m').date('d').date('H').date('i').date('s');
$filepath='./uploads/';
$maxSize=500000;//设置上传文件的大小:单位是B
$allowtype=array('jpg','jpeg','gif','png');
uploadFile($_FILES, $fieldname,$filename, $filepath, $maxSize, $allowtype);
/*
* $files:上传文件资源句柄
* $fieldname:上传文件的表单名,本例中是'pic'
* $filename:新文件名(不需要指定拓展名)
* $filepaht:文件存放路径
* $allowtype:设定循序上传文件的类型
*
*/
function uploadFile($files,$fieldname,$filename,$filepath,$maxSize,$allowtype){
//step 1:检查错误
if($files[$fieldname]['error']>0){
switch ($files[$fieldname]['error']){
case 1:
echo "上传的文件超过了upload_max_filesize 选项限制的值<br>";
break;
case 2:
echo "上传文件超过了表单中 MAX_FILE_SIZE 选项指定的值";
break;
case 3:
echo "文件只有部分被上传";
break;
case 4:
echo "没有文件被上传";
break;
case 6:
echo '找不到临时文件夹';
break;
case 7:
echo '文件写入失败';
break;
default:
echo "未知的错误";
}
exit();
}
//step 2:检查大小
if($files[$fieldname]['size']>$maxSize){
echo '上传的文件太大,不要超过'.$maxSize.'';
exit();
}
//step 3:检查类型
$arr=explode('.', $files[$fieldname]['name']);
$filetype=$arr[count($arr)-1];
if(!in_array($filetype, $allowtype)){
echo '文件类型不支持!';
exit();
}
//step 4:改名、指定新路径
$filename=$filename.'.'.$filetype;
//step 5:移动
//特别注意:这里必须指明新文件名,否则将无法移动,暂不知什么原因
if(is_uploaded_file($files[$fieldname]['tmp_name'])){
if(move_uploaded_file($files[$fieldname]['tmp_name'], $filepath.$filename)){
echo '<script>alert("上传成功!")</script>';
}else{
echo '<script>alert("上传失败,路径错误或者没有权限!")</script>';
}
}else{
echo '这不是一个上传文件!';
}
}