php单个文件上传,php上传单个文件

PHP上传文件的问题:

一:1、上传单个文件的时候。在表单页面设置文件输入域,然后表单要加入

这个属性,这是告诉浏览器我要上传文件的属性,一定要加上。

2、设置好了表单,接下来的事就是读取表单的变量,如果你还定义了其他的变量,那么php使用$_POST来读出,如:$uservar=$_POST["uservar"],然而文件是存在$_FILES中,具体见下面:

* $_FILES['userfile']['name'] 客户端机器文件的原名称。

* $_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。

* $_FILES['userfile']['size'] 已上传文件的大小,单位为字节。

* $_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。

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

1. 值:0; 没有错误发生,文件上传成功。

2. 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

3. 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

4. 值:3; 文件只有部分被上传。

5. 值:4; 没有文件被上传。

3、完成上传过程。示例代码:

(1)

$upload_file=$_FILES['userfile']['tmp_name'];

$upload_file_name=$_FILES['userfile']['name'];

if($upload_file){

$file_size_max = 20000000;// 1M限制文件上传最大容量(bytes)

$store_dir = "attfile/";// 上传文件的储存位置

$accept_overwrite = 1;//是否允许覆盖相同文件

// 检查文件大小

if ($upload_file_size > $file_size_max) {

echo "对不起,你的文件容量大于规定";

exit;

}

// 检查读写文件

if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {

echo   "存在相同文件名的文件";

exit;

}

//复制文件到指定目录

if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {

echo "复制文件失败";

exit;

}

}

echo   "

你上传了文件:";

echo $_FILES['userfile']['name'];

echo "
";

//客户端机器文件的原名称。

Echo   "文件的 MIME 类型为:";

echo $_FILES['userfile']['type'];

//文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。

echo "
";

Echo   "上传文件大小:";

echo $_FILES['userfile']['size'];

//已上传文件的大小,单位为字节。

echo "
";

Echo   "文件上传后被临时储存为:";

echo $_FILES['userfile']['tmp_name'];

//文件被上传后在服务端储存的临时文件名。

echo "
";

$Erroe=$_FILES['userfile']['error'];

switch($Erroe){

case 0:

Echo   "上传成功"; break;

case 1:

Echo   "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值."; break;

case 2:

Echo   "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。";   break;

case 3:

Echo   "文件只有部分被上传";break;

case 4:

Echo   "没有文件被上传";break;

}

?>

(2)<?php

$uploaddir= '../attfile/';//设置上传的文件夹地址

$FILES_EXT=array('.gif','.jpg','.bmp');//设置允许上传文件的类型

$MAX_SIZE = 20000000;//设置文件上传限制20000000byte=2M

for ($i=0;$i

$FILES_NAME=$_FILES['userfile']['name'][$i];//客户端文件名

}

//echo $FILES_NAME;

//取出文件后缀名,strrpos()从标记开始前字节个数(不算标记),substr()显示从第strrpos()之后的字符

$file_ext=substr($FILES_NAME,strrpos($FILES_NAME,"."));

//echo $file_ext;

//检查文件大小

if($_FILES['userfile']['size']>$MAX_SIZE){

echo "文件大小超程序允许范围!";

exit;

}

//检查文件类型

if(in_array($file_ext, $FILES_EXT)){

$_FILES['userfile']['name']=date("YmdHis").rand().$file_ext;

$uploadfile = $uploaddir.$_FILES['userfile']['name'];//上传后文件的路径及文件名

//将上传后的路径写入到数据库中

//用move函数生成临时文件名,并按照 $_FILES['userfile']['name']上传到$uploaddir下

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {

print "\n上传成功!";

} else {

print "上传错误!  以下是上传的信息:\n";

print_r($_FILES);

}

}

else{

echo "{$file_ext}不是允许上传的文件类型!";

exit;

}

?>

小技巧>>1、当在提交时,希望确认是否要提交可以在

里如这样加入:

2、在php里希望返回时所有在文本框里的东西都保留可以这样:重新来过。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值