从建站打拿站 -- PHP(文件上传)
原创
©著作权归作者所有:来自51CTO博客作者web安全工具库的原创作品,请联系作者获取转载授权,否则将追究法律责任
李白写过那么多诗,他自己会背么?
像李白那么不羁的人,估计写完就忘了,放不下的是我们俗人自己。。。
---- 网易云热评
一、上传文件
1、新建一个html网页,上传文件
enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"
<!DOCTYPE html> <!-- 有助于浏览器中正确显示网页 -->
<html> <!-- html页面开始标签 -->
<head>
<meta charset="UTF-8"> <!-- UTF-8编码 -->
<title>周杰伦</title> <!-- 标签页显示的内容 -->
</head>
<body style="text-align:center;">
<img src="1.jpg"> <!-- 插入一张图片 -->
<hr> <!-- 水平线 -->
<h1>上传文件</h1>
<form action="../php/sc.php" method="post" enctype="multipart/form-data">
选择上传文件:<input type="file" name="file" id="file" /><br>
<input type="submit" name="submit" value="上传" />
</body>
</html> <!-- html页面结束标签 -->
运行结果:
2、设置PHPstudy环境中临时文件的上传路径,从php配置文件设置
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir =c:\test
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
3、编写上传文件的sc.php
move_uploaded_file:将临时的文件移动到其他地方,就相当于保存文件了
__DIR__;获取该脚本的当前目录
<meta charset="utf-8">
<?php
echo "<pre>";
if(isset($_POST['submit'])){
//var_dump($_FILES);
$tmp=$_FILES['file']['tmp_name'];//获取上传文件的临时目录名称
$path=__DIR__."\\".$_FILES['file']['name'];//设置文件上传到的位置
if(move_uploaded_file($tmp,$path)){
echo "上传成功";
}else{
echo "上传失败";
}
}
?>
4、为上传的文件增加验证,比如至允许上传图片,且大小不超过20000字节
<meta charset="utf-8">
<?php
if(isset($_POST['submit'])){
$tmp=$_FILES['file']['tmp_name'];//获取上传文件的临时目录名称
$path=__DIR__."\\".$_FILES['file']['name'];//设置文件上传到的位置
//echo $tmp;
//echo $path;
if ((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)){
if(move_uploaded_file($tmp,$path)){
echo "上传成功";
}else{
echo "上传失败";
}
}else{
echo "上传文件类型有误";
}
}else{
echo "请通过表单提交";
}
?>
禁止非法,后果自负
欢迎关注公众号:web安全工具库