PHP从零单排(四)PHP中的文件上传处理
来源:互联网 发布:安卓6.0 数据开关 编辑:程序博客网 时间:2024/05/17 03:43
在WEB开发中,经常会遇到从客户端上传文件到服务器端的问题。通常,文件上传使用的是HTTP的POST方式,使用POST方式传递文件到服务器端。要完成文件上传处理,首先要定义HTML表单的enctype属性为"multipart/form-data",如以下代码所示。
<form enctype="multipart/form-data" action="somefile.php" method="POST">
只有这样的表单,才能确保文件可以提交并上传。其中,somefile.php要替换为一个可以处理文件上传的真实PHP文件。
<html><head><title>3-6</title></head><body><form enctype="multipart/form-data" action="3-7.php" method="POST">upload<input name="myfile" type="file" /><input type="submit" value="Submit" /></form></body></html>
在PHP程序中,使用全局变量$_FILES处理文件上传。$_FILES是一个数组,包含了要上传的文件的信息。相关数组的内容:
$_FILES['myfile']['name']表示客户端文件的原始名称,即要上传的文件的文件名。其中myfile就是在上述代码中定义的input元素的name 属性的值:<input name="myfile" type="file" />
$_FILES['myfile']['type']表示上传文件的类型。
$_FILES['myfile']['size']表示已上传文件的大小,单位为字节。
$_FILES['myfile']['tmp_name']表示文件上传后,在服务器端存储的临时文件名。
$_FILES['myfile']["error"]表示和文件上传的相关错误信息。
文件提交后,一般会被存储到服务器的默认临时目录中,可以通过修改php.ini中的upload_tmp_dir项,修改为其他路径。使用函数move_uploaded_file()将上传的文件移到指定的目录下。该函数的原型如下所示。第一个参数filename指合法的上传文件,第二个参数destination是移动后的目标文件。如果上传的文件不合法,或由于某种原因无法移动文件。该函数的原型如下所示。第一个参数filename指合法的上传文件,第二个参数destination是移动后得目标文件。如果上传文件不合法,或由于某种原因无法移动文件,该函数会返回FALSE。
move_uploaded_file(filename,destination)
<?php $upload_path=$_SERVER['DOCUMENT_ROOT']."/upload/"; $dest_file=$upload_path.basename($_FILES['myfile']['name']); if(move_uploaded_file($_FILES['myfile']['tmp_name'],$dest_file)) { echo "文件已上传至服务器根目录的upload目录下"; } else { echo "文件上传时发生了一个错误".$_FILES['myfile']['error']; }?>
- PHP从零单排(四)PHP中的文件上传处理
- PHP从零单排(三)PHP中的session
- PHP从零单排(十八)图片处理
- PHP从零单排(五)PHP对数组的处理
- PHP从零单排(六)PHP对字符串的处理
- PHP从零单排(八)用PHP处理日期和时间
- PHP从零单排(零)技巧总结
- PHP从零单排(一)PHP基本语法
- PHP从零单排(十)PHP中生成随机数
- PHP从零单排(十七)主要图像处理函数及图像基础示例
- PHP从零单排(七)用PHP操作目录和文件
- PHP从零单排(九)在PHP中生成cookie
- PHP从零单排(十一)操作MySQL的PHP函数
- PHP从零单排(十二)使用PHP连接MySQL数据库
- PHP从零单排(十三)使用PHP显示MySQL数据库的数据
- PHP从零单排(十六)PHP操作MySQL常见错误信息及分析
- PHP从零单排(二)访问和获取HTML表单数据
- PHP从零单排(十四)数据分页显示的原理及实现
- 设计模式——装饰模式
- HashMap与HashTable的区别、HashMap与HashSet的关系
- traits:Traits技术初探
- servlet开发
- Java迭代器与迭代模式
- PHP从零单排(四)PHP中的文件上传处理
- sizeof()、strlen()、string中length()和size()
- POJ 2948 Martian Mining(DP)
- UVA 11437 - Triangle Fun
- eclipse下properties文件中文乱码的解决方案
- IP数据报首部检验和字段分析
- How to debug a buffer overrun
- java 数组学习
- 从零单排c++ primer(9)