php文件上传
来源:互联网 发布:什么叫大数据思维 编辑:程序博客网 时间:2024/05/29 17:30
文件上传是网络生活中经常使用的一个功能。使用PHP可以很方便的实现文件上传。
流程:
表单选择文件 -》检查文件大小及类型-》生成临时文件-》移动临时文件夹以及文件存储目录-》记录文件以便于管理。
在文件上传功能中,需要考虑一下几个问题
1 .限定上传文件的大小
2.限定上传文件的类型
3.只允许可信任的用户上传文件,防止远程提交
4.服务器端文件存储目录
5.对文件上传后的管理
在文件上传表单中,需要将表单ENCTYPE属性设置为multipart/form-data;
<form enctype="multipart/form-data" action="upload.php" method="post">
<label for="file">请选择上传的文件</label>
<input type="file" name="file" size="40">
<br/>
<input type="submit" name="submit" value="确定">
</form>
在 <input> 标签里, type="file" 表示应该把输入作为文件来处理,这时候会出现选择文件的浏览按钮,点击该按钮即可选择本地电脑里的文件。
PHP 文件上传处理
PHP 提供了内置变量 $_FILES 来处理上传的文件。
当点击“确定”按钮提交表单至 upload.php 后,可以利用 $_FILES 变量来处理提交的文件。
文件处理例子:
<?php//文件存储路径$file_path="upload/";//664权限为文件属主和属组用户可读和写,其他用户只读。if(is_dir($file_path)!=TRUE) mkdir($file_path,0664) ;//定义允许上传的文件扩展名$ext_arr = array("gif", "jpg", "jpeg", "png", "bmp", "txt", "zip", "rar");if (empty($_FILES) === false) { //判断检查 if($photo_up_size > 2097152){ exit("对不起,您上传的照片超过了2M。"); } if($_FILES["file"]["error"] > 0){ exit("文件上传发生错误:".$_FILES["file"]["error"]); } //获得文件扩展名 $temp_arr = explode(".", $_FILES["file"]["name"]); $file_ext = array_pop($temp_arr); $file_ext = trim($file_ext); $file_ext = strtolower($file_ext); //检查扩展名 if (in_array($file_ext, $ext_arr) === false) { exit("上传文件扩展名是不允许的扩展名。"); } //以时间戳重命名文件 $new_name = time().".".$file_ext; //将文件移动到存储目录下 move_uploaded_file($_FILES["file"]["tmp_name"],"$file_path" . $new_name); //向数据表写入文件存储信息以便管理 //*********** 代码略 ***********// echo "文件上传成功!"; exit;} else { echo "无正确的文件上传";}?>
例子说明:
- 该例子只是简单演示了文件上传的流程,请勿直接用于实际项目
- 该例子中缺少对用户权限的检查
- 如果上传后的文件没有做重命名,则需要做文件重名时的逻辑处理
- 写入数据表文件信息由于涉及到数据库操作,暂略。写入数据表的信息应该包括文件上传的时间,上传的用户ID以及存储的位置,以便清理上传无效的文件以及文件过期管理等
- 无提交校验,要防止远程提交,可以在表单生成页面产生一个会话ID,然后在upload.php页面做校验以防止远程提交
0 0
- php 上传文件文件
- PHP上传文件
- PHP文件的上传
- php上传文件
- PHP文件上传
- php上传文件
- PHP上传文件
- [PHP]文件上传处理
- php多文件上传`
- PHP实现文件上传
- PHP文件上传
- PHP文件上传
- 关于php文件上传
- PHP文件上传代码
- PHP文件上传
- php 文件上传,
- PHP上传文件代码
- php文件上传
- 理解RESTful架构
- 高德地图的基本操作
- iOS DLNA Cyberlink,PlatinumKit库完成DLNA功能
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- iOS 文字转音频
- php文件上传
- HTML5游戏开发实践之HTML5框架的使用(一)
- C++11类的新语法和特性
- hadoop 安装
- 我想请问一下,贷款买房哪家银行好?
- zstu新生赛
- hdu 4810 2013南京区域赛 杨辉三角组合数+容斥原理思维+找规律
- 7.CAS自定义错误信息
- 【Window内核编程】——UNICODE_STRING,ANSI_STRING和PCHAR