PHP文件操作(三)PHP实现文件上传和下载
来源:互联网 发布:淘宝客url转换 编辑:程序博客网 时间:2024/04/30 23:29
一、文件上传原理
用户提交上传文件请求后,上传的文件以临时文件的形式被存储到服务器临时文件夹中。我们使用PHP程序将临时文件移动到我们指定的服务器的文件夹中,从而实现文件的上传。
二、上传页面fileUpload.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>文件上传</title></head><body><!-- form的属性必须为:method="post" enctype="multipart/form-data"--><form name="postForm" action="upload.php" method="post" enctype="multipart/form-data">上传文件:<input name="myFile" type="file" value="" /><input name="subBtn" type="submit" value="上 传" /></form></body></html>
三、处理上传页面upload.php
<?php/* * Created on 2014-11-10 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates */ header("Content-Type: text/html;charset=utf-8");//echo "<pre>";//var_dump($_FILES);//echo "</pre>";//HTTP 文件上传变量$_FILES$fileName = $_FILES["myFile"]["name"];//上传的文件名$type = $_FILES["myFile"]["type"];//上传文件的MIME类型$tmpName = $_FILES["myFile"]["tmp_name"];//上传文件在服务器上的临时文件名$errNo = $_FILES["myFile"]["error"];//上传文件错误号$size = $_FILES["myFile"]["size"];//上传文件大小$destDir = "uploads/";//用于存放上传文件的目录$destFile = $destDir.$fileName;if(is_uploaded_file($tmpName)){//判断文件是否是通过 HTTP POST 上传的move_uploaded_file($tmpName,$destFile);//将上传的文件移动到指定的位置,若出现同名文件会覆盖。//路径或文件名含有中文的处理//$enCodeDestFile = iconv("utf-8","gbk",$destFile);//move_uploaded_file($tmpName,$enCodeDestFile);}?>
NOTE:move_uploaded_file()与copy()的区别是,前者会检查并确保上传的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。
四、服务器有关上传下载的配置file_uploads = On 是否允许上传
upload_tmp_dir 上传文件保存临时目录
post_max_size 以POST方式传递数据的限制
max_file_uploads 上传文件大小限制
max_file_uploads 一次上传最大文件数
max_execution_time 脚本被解析器中止之前允许的最大执行时间,单位为秒
max_input_time 脚本解析输入数据允许的最大时间,单位为秒
max_input_nesting_level 输入变量的嵌套深度
memory_limit 一个脚本最大可使用的内存总量
五、错误信息说明
1、UPLOAD_ERR_OK 其值为 0,没有错误发生,文件上传成功。
2、UPLOAD_ERR_INI_SIZE 其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
3、UPLOAD_ERR_FORM_SIZE 其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
4、UPLOAD_ERR_PARTIAL 其值为 3,文件只有部分被上传。
5、UPLOAD_ERR_NO_FILE 其值为 4,没有文件被上传。
6、UPLOAD_ERR_NO_TMP_DIR 其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
7、UPLOAD_ERR_CANT_WRITE 其值为 7,文件写入失败。PHP 5.1.0 引进。
六、文件下载
1、文件下载原理:服务器接收客户端请求-->从服务器上读取客户端请求的文件-->将文件信息返回给客户端浏览器,并将文件数据输出给客户端浏览器。
2、下载HTML页面fileDownLoad.html
<a href="download.php?file='E:/abc.png'">下载</a>
3、处理下载页面download.php
<?php/* * Created on 2014-11-12 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates */header("Content-Type: text/html;charset=utf-8");if(isset($_GET["file"])){//获取传递过来的文件路径$file = $_GET["file"];//中文处理$file = iconv("utf-8","gbk",$file);if(file_exists($file)){//切记在这些语句之前不能有输出语句,具体原理待整理//返回文件大小header("content-Length:".filesize($file));//返回文件名header("content-disposition:attachment;filename=".basename($file));//输出文件readfile($file);//输出文件也可以用file_get_contents()、fread()、fgets()等方法,如://echo file_get_contents($file);}else{echo "文件不存在!";}}?>
- PHP文件操作(三)PHP实现文件上传和下载
- php学习基础-文件系统(三) 文件夹的相关操作、php文件上传、php文件下载
- PHP学习-----文件操作/上传和下载
- php实现文件的上传和下载
- php文件上传和下载
- php文件上传和下载
- PHP文件上传和下载
- php实现文件下载和多文件上传
- PHP文件上传、下载
- PHP文件上传、下载
- PHP实现文件的上传及下载
- php 实现文件下载与上传
- PHP实现文件上传与下载
- PHP实现文件上传与下载
- php文件上传操作
- PHP文件上传操作
- PHP文件上传操作
- php文件的上传和下载
- 马士兵struts2视频教程第五十一集
- ios 多语言支持
- linux系统下的病毒
- UINavigationController多视图控制器
- 《严蔚敏数据结构_08》
- PHP文件操作(三)PHP实现文件上传和下载
- eclipse配置PyDev插件
- HDU 1733 Escape(分层网络流)
- linkin大话数据结构--List
- eclipse 缓存
- ActivityGroup里面装的子Activity不执行OnActivityResult()的解决办法
- 吃苹果等于刷牙 美媒公布6个养生秘方
- 绝妙的取样(《编程珠玑(续)》第十三章)
- sk_buff结构分析