用php写上传文件的代码,php文件上传代码如何写

本文详细介绍了PHP新手如何编写文件上传代码,包括$_FILES全局变量的使用、文件类型和大小限制、错误处理及实际示例。通过一步步解析,助你快速掌握文件上传的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php文件上传代码如何写

发布时间:2020-09-17 10:38:41

来源:亿速云

阅读:83

作者:小新

小编给大家分享一下php文件上传代码如何写,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

php文件上传代码怎么写

在初学php的时候,我们无法理解php文件上传的代码,以及上传的逻辑,以下代码从初学者的角度编写,希望对大家有帮助!

需要用到的知识:

超级全局数组:$_FILES

$_FILES['myfile']['name']的值是:客户端文件系统的文件名称

$_FILES['myfile']['type']的值是:客户端传递的文件类型

$_FILES['myfile']['size']的值是:文件的字节大小

$_FILES['myflie']['tmp_name ']的值是:文件被上传后在服务器存储的临时全路径

$_FILES['myfile']['error']的值是:文件上传的错误代码

存储在$_FILES['myfile']['error']中的值

值为0: 表示没有发生任何错误

值为1: 表示上传文件的大小超出了约定值。文件大小的最大值在PHP配置文件中指定的,指令是:upload_max_filesize

值为2: 表示上传文件大小超过了HTML表单隐藏域属性的MAX_FILE_SIZE元素所指定的最大值

值为3: 表示文件只被部分上传

值为4:表示没有上传任何文件

值为6: 表示找不到临时文件夹

值为7: 表示文件写入失败

错误值对应常量

UPLOAD_ERR_OK : 对应值0

UPLOAD_ERR_INI_SIZE : 对应值1

UPLOAD_ERR_FORM_SIZE : 对应值2

UPLOAD_ERR_PARTIAL :  对应值3

UPLOAD_ERR_NO_FILE : 对应值4

UPLOAD_ERR_NO_TMP_DIR : 对应值6

UPLOAD_ERR_CANT_WRITE : 对应值7

upload.html 代码如下

图片上传

upload.php 代码如下<?php

//var_dump($_FILES);

//exit;

//判断是否是文件上传

$file = $_FILES;

//第一个pic 是input 中的name值

if(is_uploaded_file($file['pic']['tmp_name']))

{

//声明允许上传的文件类型

$allowType = ['image/png','image/jpeg','image/gif','image/jpg'];

//正在上传的文件的类型

$type = $file['pic']['type'];

// echo $type;

//判断类型是否是允许的类型

if(!in_array($type,$allowType))//检查数组中是否存在某个值,返回布尔型

{

exit('上传类型有误');

}

//判断文件上传的大小

if($file['pic']['size'] > 1024 * 1024 * 8) //以字节为主 1024*1024是1M

{

exit('上传的文件太大');

}

//设置新文件名

$filename = date('YmdHis',strtotime('now')).rand(1000,9999);

//获取上传文件的后缀名

$name = $file['pic']['name'];

//得到文件名字符串

$filestr = explode('.',$name);

$ext = array_pop($filestr);

//拼接新文件名

$newfilename = $filename.'.'.$ext;

//拼接上传文件的路径

$path = './uploads/';

//绝对路径

$abspath = $path.$newfilename;

if(move_uploaded_file($file['pic']['tmp_name'],$abspath))

{

echo '上传成功';

}else{

echo '上传失败';

}

}

看完了这篇文章,相信你对php文件上传代码如何写有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值