文件上传

首先要知道文件上传的一些限制可以配置php.ini文件

参数

file_uploads        默认为on 允许通过http上传文件

upload_tmp_dir        文件上传至服务器时用于监视存储的mul

upload_max_filesize        允许上传文件大小的最大值(默认为2M 单个文件大小)

post_max_size        php可接收的post数据最大值,默认为8M(表单中的所有文件大小)

一般不需要更改这些设置,除非有特殊要求

预定义变量$_FILES

$_FILES['file']['name']        文件原名称

$_FILES['file']['type']        文件的类型

$_FILES['file']['size']        已上传文件的大小 单位为字节

$_FILES['file']['tmp_name']        文件上传后在服务器端存储的临时文件名

$_FILES['file']['error']        该文件上传相关的错误代码

注意:

要确保文件上传成功 表单必须保证是post上传而且必须设置

enctype = "multipart/form-data"

效果:


来一些文件上传错误代码$_FILES['file']['error'] 

0        没有错误,文件上传

1        文件上传超过了upload_max_size选项限制

2        上传文件大小超过了html表单max_file_size的值

3        文件只有部分被上传

4        没有文件被上传

6        找不到临时文件夹

7        文件写入失败


保存在服务器端的临时文件在代码执行结束时会自动清除

文件上传函数

is_uploaded_file()        判断文件是否是通过HTTP post上传的

rename()        重命名一个文件或目录

move_uploaded_file()        将上传的文件移动到新位置

is_uploaded_file($file['tmp_name']);

$file['tmp_name']      是服务器端临时文件名

move_uploaded_file($file['tmp_name'],'./') 

$file['tmp_name']        原临时文件,

./        新位置

文件上传实例

html页面脑补吧!

<?php 
	/*
		思路:
			1.客户端通过表单post提交文件
			2.服务器端(PHP)判断没有错误通过$_FILES,预定义变量获取到文件信息
			3.通过文件上传函数将文件保存到服务器端相应的位置
	*/
			// 获取name为fileUP的表单
	$file = $_FILES['fileUp'];	
			// 先判断是否有错误
	if($file['error']==0){
			// 给临时文件取一个新名,因为临时文件会在执行完自动清除
		if(is_uploaded_file($file['tmp_name'])){
			$name = strstr($file['name'], ".");
			$newName = rand(1,9999).$name;
			
			if(move_uploaded_file($file['tmp_name'], './'.$newName)){
				echo "移动成功";
			}else{
			echo "移动失败!";
			}
		}else {
			echo "不是通过HTTP上传文件";
			}
	}else{
		switch ($file['error']) {
			case 1 :
				$error = "文件上传超过了upload_max_size选项限制";
				break;
			case 2 :
				$error = "上传文件大小超过了HTML表单中MAX_FILE_SIZE的值";
				break;
			case 3 :
				$error = "文件只有部分被上传";
				break;
			case 4 :
				$error = "没有文件被上传";
				break;
			default:
				break;
		}
		echo $error;
}
 ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值