html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!-- enctype 将表单数据转换成二进制上传 -->
<form action="php/upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="mypic">
<input type="submit" value="提交">
</form>
</body>
</html>
php:
<?php
/*php有一个数组,该数据用于保存上传文件所有信息:$_FILES
var_dump($_FILES); 二维数组
array(1) { ["mypic"]=> array(5) { ["name"]=> string(5) "1.JPG" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "C:\xampp\tmp\php2BD2.tmp" ["error"]=> int(0) ["size"]=> int(32593) } }
size:字节 byte b=8bit
*/
$picname=$_FILES['mypic']['name'];
$picsize=$_FILES['mypic']['size'];
//限制大小:512kb
if($picsize>(512*1024)){
//echo json_encode(['code'=>1,'msg'=>'上传文件过大']);
echo '{"code":-1,"msg":"上传文件过大"}';
exit;
}
/*文件类型
jpg png gif jpeg mp4 flv pdf doc docx
*/
$type=strtolower(strstr($picname,"."));//不算太健壮,如果文件名中有两个点,就gg
//echo $type;
if($type!=".jpg"&&$type!=".gif"&&$type!=".png"){
echo '{"code":-2,"msg":"上传 文件类型错误"}';
exit;
}
//文件重名:重新起一个文件名
$pics=time().rand(1,9999).$type;
//将临时文件(如果上传的文件大,则会分为几部分上传)移动到上传目录
$src=$_FILES["mypic"]["tmp_name"];
$des="../uploads/".$pics;
move_uploaded_file($src,$des);
echo '{"code":1,"msg":"上传成功"}';
?>