`
chaoyi
  • 浏览: 291141 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

第 13 章 上传文件

 
阅读更多

学习要点:
1.PHP 上传配置
2.$_FILES 数组
3.PHP 上传函数

虽然大多数人认为 Web 只包含网页,但 HTTP 协议实际上可以传输任何文件,如office文档、PDF 、可执行文件、AVI、压缩文件及各种其他文件类型。虽然 FTP 在历史上一直是向服务器上传文件的标准方式,但通过网页上传文件也逐渐流行起来。

一.PHP 上传配置
有一些配置指令可用于精细地调节 PHP 的文件上传功能。这些指令用来确定是否启用PHP 的文件上传、可允许的最大上传文件大小、可允许的最大脚本内存分配和其他各种重要的资源。

1.file_uploads=on|off : 确定服务器上的 PHP 脚本是否可以接受文件上传。
2.max_execution_time=integer :PHP 脚本在注册一个致命错误之前可以执行的最长时间,以秒为单位。
3.memory_limit=integer : 设置脚本可以分配到的最大内存,以 MB 为单位。这可以防止失控的脚本独占服务器内存。
4.upload_max_f ilesize=integer :设置上传文件最大大小,以MB 为单位。此指令必须小于 post_max_size 。
5.upload_tmp_dir=string :设置上传文件在处理之前必须存放在服务器的临时一个位置,直到文件移动到最终目的地为止。
6.post_max_size=integer :确定通过 POST 方法可以接受的信息的最大大小,以 MB 为单位。

二.$_FILES 数组
上传表单的 HTML
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
上传文件: <input type="file" name="userfile" />
<input type="submit" value=" 上传" />
</form>

ENCTYPE="multipart/form-data",这里是固定写法,否则文件上传失败
ACTION="upload.php “,定义要处理上传的程序文件路径
METHOD="post" ,定义传输方式为POST,一般情况下Form 提交数据都设置为POST
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" >,这是一个隐藏域,定义了上传文件的大小上限,超过这个值时,上传失败。它必须定义在文件上传域的前面.而且这里定义的值不 能超过在php.ini 文件中upload_max_f ilesize 设置的值, 否则没有意义了. (注意: MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP.ini设置中的上传文件最大值,是不会 失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。)
<input type="file" name="userfile" />, 这是文件上传域,Type属性必须设置为file, 但Name属性可以自定义, 这个值会在代码文件中使用.

$_FILES 超级全局变量,它储存各种与上传有关的信息,这些信息对于通过 PHP 脚本上传到服务器的文件至关重要。
1.存储在$_FILES["userfile"]["tmp_name"] 变量中的值就是文件在 Web 服务器中临时存储的位置。
2.存储在$_FILES["userfile"]["n ame"] 变量中的值就是用户系统中的文件名称。
3.存储在$_FILES["userfile"]["s ize"] 变量中的值就是文件的字节大小。
4.存储在$_FILES["userfile"]["type"] 变量中的值就是文件的 MIME 类型,例如: text/pla in 或 image/gif。
5.存储在$_FILES["userfile"]["error"]变量中的值将是任何与文件上载相关的错误代码。这是在 PHP4.2.0 中增加的新特性。 error 分别提供了一些数组常量: 0:表示没有发生错误, 1:表示上载文件的大小超出了约定值。文件大小的最大值是 PHP 配置文件中指定的,该指令是 upload_max_f ilesize 。2:表示上载文件大小超出了 HTML 表单的 MAX_FILE_SIZE 元素所指定的最大值。3:表示文件只被部分上载。4:表示没有上载任何文件。

<?php
print_r($_FILES);
?>

 
三.PHP 上传函数
PHP 的文件系统库中提供了大量文件处理函数,除此之外,PHP 还提供了两个专门用于文件上传过程的函数:is_uploaded_file() 和 move_uploaded_f ile() 。

1.确定是否上传文件:is_uploaded_file()

if (is_uploaded_file( $_FILES["userfile"]["tmp_name"])) {
echo '已经上传到临时文件夹' ;
} else {
echo '失败' ;
}

 
2.移动上传文件:move_uploaded_f ile()

if (!move_uploaded_file($_FILES["userfile"][ "tmp_name"], $_FILES["userfile"][ "name" ])) {
echo ' 移动失败';
exit;
}

 

分享到:
评论

相关推荐

    第13章 上传文件

    NULL 博文链接:https://onestopweb.iteye.com/blog/2205082

    第八章:struts2文件上传下载.ppt

    第八章:struts2文件上传下载.ppt

    第九章 在网页中实现文件上传源文件.rar_vc 上传_上传文件_文件上传_文件上传组件_网页 vc

    开发以一个全功能的ASP文件上传组件,分析网页中传来的文件数据,提供接口供ASP程序调用该组件保存数据... 编写Web页供用户选择上传文件。 编写ASP文件调用文件上传组件,将文件保存到服务器文件系统中。VC提供的控件。

    第3章 3.WEB安全性测试--文件上传漏洞.mp4

    第3章 3.WEB安全性测试--文件上传漏洞.mp4

    web上传文件

    非常好用的一款上传软件。切没用使用期限限制。

    unity3d游戏入门第13-14章

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    unity3d游戏入门第二章开发环境.rar

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    梁建武<JSP程序设计实用教程>之第八章 JSP与文件操作

    无论是用JSP技术,还是ASP、PHP技术实现的...本章首先介绍File对象和一些常用的输入输出流,然后介绍了实现多文件上传的两种方式。最后详细介绍了可以简单实现上传下载功能的JspSmartUpload组件,并通过实例加以说明。

    PHP程序设计第2版

    第15章 处理文件上传 第16章 网络 第17章 PHP和LDAP 第18章 会话处理器 第19章 用Smarty模板化 第20章 Web服务 第21章 安全PHP编程 第22章 SQLite 第23章 PDO介绍 第24章 MySQL介绍 第25章 安装和配置MySQL 第26章 ...

    unity3d游戏入门第11-12章

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    C++网络编程实例文件之第十章 多线程网络文件传输的设计与实现

    第一章 网络通信基础 第二章 认识Windows编程模型 第三章 网络基本应用在VC++中的实现 第四章 串口通信及其实例 第五章 应用层协议及编程实例 第六章 传输层协议及编程实例 第七章 网络层协议和数据链路层 第八章 ...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第7章 文件上传和json数据交互 (共30页).pptx

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第7章 文件上传和json数据交互 (共30页).pptx 完整版 Java开发实训课程系列-SpringMVC框架技术教程 第8章 拦截器 (共12页).pptx 完整版 Java开发实训课程...

    unity3d游戏入门第三章了解编译器

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    unity3d游戏入门第一章 .rar

    第13章 鼠标事件处理 第14章 脚本的运行 第15章 预制体 第16章 (练习) 子弹发射 第17章 物理系统 第18章 碰撞检测 第19章 (练习)飞机大战 第20章 音频播放 第21章 延时与消息调用 第22章 交互界面UI 第23章 UI事件...

    unity3d游戏入门第五章----游戏对象

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    unity3d游戏入门第18-20章

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    unity3d游戏入门第15-17章

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    unity3d游戏入门第四章----场景与游戏对象

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    unity3d游戏入门第21-24章.rar

    因为文件较大分批上传 适合爱好者或者想从事unity3d游戏开发的人员 内容:第01章 课程内容 第02章 开发环境 第03章 了解编辑器 第04章 场景与游戏对象 第05章 游戏对象 第06章 图片的使用 第07章 游戏对象与...

    ASP入门课件(第9-13章)

    上传资源大小有限 所以就分开上传了 ASP课件第9-13章 第9章:文件处理 第10章:数据报表 第11章:流媒体应用 第12章:Web Service应用 第13章:综合实例---BBS论坛

Global site tag (gtag.js) - Google Analytics