PHP上传文件(附带源码)
form 表单的写法:
form action= user.php enctype= multipart/form-data method= post name= upvideo 上传文件: input type= file name= video / !-- 将 type 属性设置为 file -- input type= submit value= 上传 / /form
上传文件的表单必须在 form 中定义 enctype= multipart/form-data 。
此时用于接收文件信息的 PHP 代码如下:
?php var_dump($_POST); var_dump($_FILES); if ($_FILES[ video ][ error ] 0){ echo Error: . $_FILES[ video ][ error ] . br / } else { print_r($_FILES[ video ]); if(is_uploaded_file($_FILES[ video ][ tmp_name ])){ $upfile=$_FILES[ video //获取数组里面的值 $name=$upfile[ name //上传文件的文件名 $type=$upfile[ type //上传文件的类型 $size=$upfile[ size //上传文件的大小 $tmp_name=$upfile[ tmp_name //上传文件的临时存放路径 // 移动上传的文件到指定目录 move_uploaded_file($tmp_name, /Library/WebServer/Documents/book/ .$name); ?
执行上述上传文件操作,打印结果如下:
array(0) { }
array(1) {
[ video ]= array(5)
{
[ name ]= string(14) linux icon.gif
[ type ]= string(9) image/gif
[ tmp_name ]= string(26) /private/var/tmp/phpyiMCwf
[ error ]= int(0)
[ size ]= int(15712)
}
}
Array
(
[name] = linux icon.gif
[type] = image/gif
[tmp_name] = /private/var/tmp/phpyiMCwf
[error] = 0
[size] = 15712
)
第一个数组为空,表明在使用 file 类型表单提交数据时并不使用 $_POST 接收数据,而是使用全局变量 $_FILE 来接收。
PHP 中使用 move_uploaded_file 函数将上传的文件移动到指定位置。
在 PHP 配置文件 php.ini 中默认上传文件的大小只有 2MB,在上传大文件时需要对配置文件进行修改。
php.ini 中有关上传文件的设置如下:
文件上传的临时存放目录。如果没指定,那么 PHP 会使用系统默认的临时目录。该选项默认为空,如果不配置这个选项,文件上传功能就无法实现。
上传文件的最大尺寸。这个选项默认值为 2MB,即文件上传的大小为 2MB,如果想上传一个 50MB 的文件,就必须设定 upload_max_filesize=50M。
仅设置 upload_max_filesize=50M 还是无法实现大文件的上传功能,还必须修改 php.ini 文件中的 post_max_size 选项。post_max_size通过表单 POST 给 PHP 所能接收的最大值,包括表单里的所有值,默认为 8MB。如果 POST 数据超出限制,那么 $_POST 和 $_FILES 将会为空。
要上传大文件,必须设定该选项值大于 upload_max_filesize 选项的值,例如设置了 upload_max_filesize=50M,这里就可以设置 post_max_size=100M。
如果启用了内存限制,那么该值应当小于 memory_limit 选项的值。max_execution_time每个 PHP 页面运行的最大时间值(单位秒),默认为 30 秒。如果设置为 0,就表示无时间限制。
当我们上传一个较大的文件时,例如 50MB,很可能要几分钟才能上传完,但 PHP 默认页面最久执行时间为 30 秒,超过 30秒该脚本就停止执行,导致出现无法打开网页的情况。因此我们可以把值设置得较大些,如 max_execution_time=600。max_input_time每个 PHP 脚本解析请求数据所用的时间(单位秒),默认为 60 秒。当我们上传大文件时,可以将这个值设置得较大些。如果设置为 0,就表示无时间限制。memory_limit这个选项用来设置单个 PHP 脚本所能申请到的最大内存空间。这有助于防止写得不好的脚本消耗光服务器上的可用内存。如果不需要任何内存上的限制将其设为 -1。php.ini 配置上传文件功能示例
假设要上传一个 50MB 的大文件,php.ini 配置如下:
file_uploads = On
upload_tmp_dir = /user/file
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
max_input_time = 600
23368.html
htmllinuxphpWeb相关文章
- PHP实现通过CURL上传本地文件到另一个服务器
- PHP多文件上传接口(原生)修改版本
- #加密#如何利用PHP代码生成混淆加密PHP文件
- PHP文件上传
- [PHP] 超全局变量$_FILES上传文件详解编程语言
- Linux新建PHP文件的操作指南(linux新建php文件)
- 【Linux重启PHP服务的命令指南】(linux重启php命令)
- 快速安装配置PHP在Linux系统上(php安装配置linux)
- 环境PHP和MySQL环境搭建:快速、安全、便捷(php和mysql配置)
- 如何在Linux上重新安装PHP(linux重新安装php)
- 使用PHP编写连接MSSQL类,轻松实现数据库操作(php连接mssql 类)
- PHP连接MS SQL服务器添加数据(php 添加mssql)
- PHP简易指南:连接MySQL数据库(php连接mysql数据库)
- Linux下轻松执行PHP文件的方法(linux执行php文件)
- PHP中上传大体积文件时需要的设置
- PHP读取目录下所有文件的代码
- 在服务端进行目录建立、删除,文件上传、删除的过程的php代码
- PHP中文件上传的一个问题
- PHP文件读写操作之文件读取方法详解
- PHP中文件读、写、删的操作(PHP中对文件和目录操作)
- PHP中防止直接访问或查看或下载config.php文件的方法
- php判断上传的Excel文件中是否有图片及PHPExcel库认识
- 解析PHP实现下载文件的两种方法
- php上传文件,创建递归目录的实例代码
- PHP批量检测并去除文件BOM头代码实例
- PHP使用range协议实现输出文件断点续传代码实例
- PHP中读取照片exif信息的方法
- PHP实现ftp上传文件示例
- PHP+iFrame实现页面无需刷新的异步文件上传