一、上传文件
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 "请通过表单提交"; } ?>
禁止非法,后果自负