php实现上传功能的函数有哪些

PHP实现上传功能函数有:1、move_uploaded_file函数;2、getimagesize函数;3、extend函数;4、explode函数;5、count函数等等。

本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。

PHP实现上传功能函数有哪些?

PHP实现文件上传功能的详细代码实例

上传文件我们少不了move_uploaded_file函数函数检查并确保由 file 指定的文件是合法的上传文件(即通过 PHP教程 的 http post 上传机制所上传的)。如果文件合法,则将其移动为由 newloc 指定的文件

如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。

如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。

先来看一个关于在上传关表单设置

<html>
<head>
<title>a simple file upload form</title>
</head>
<body>
<form enctype=multipart/form-data
   action=<?print $_server['PHP_self']?> method=post>
<p>
<input type=hidden name=max_file_size value=102400 />
<input type=file name=fupload /><br/>
<input type=submit value=upload! />
</p>
</form>
</body>
</html>

这样我们主设置的上传文件最大不能超过102400字节了

PHP中要实现文件上传很简单如下代码

if ( $_files['fupload']['type'] == image/gif ) {
         $source = $_files['fupload']['tmp_name'];
         $target = upload/.$_files['fupload']['name'];
         move_uploaded_file( $source, $target );// or die (Couldn't copy);
         $size = getimagesize( $target );
         $imgstr = <p><img width=$size[0] height=$size[1] ;
         $imgstr .= src=$target alt=uploaded image /></p>;
         print $imgstr;
     }

这样就ko了,下面我们总结实例

PHP

<html>
<form enctype=multipart/form-data action= method=post>
<input type=hidden name=max_file_size value=6000000 /> <!--设置允许提交表单的最大字节数-->
文件上传: <input name=file type=file />
<input type=submit value=上传/>
</form>
</html>
<?
//处理程序
function extend($file_name) //定义获取文件的扩展名函数
{$extend =explode(. , $file_name);
$va=count($extend)-1;
return strtolower($extend[$va]);}
$dirname=../;//是否启用上一层路径,格式为:$dirname=../;或$dirname=http://www.3ppt.com/;等等与$dir组合使用,注意不要溢出根路径
$dir='upload/aa/bb';//设定上传目录,与上面的$dirname组合
$file=$_files['file'];//从文件域表单获取文件
$filename=$file['name'] ;//获取文件全名
$c_filesize=$file['size'] ;//获取本地的文件大小
$extendname=extend($filename);//获取文件扩展名
if($c_filesize>200000000000)die(文件太大);//限制上传文件大小, 单位字节
//if($extendname!=jpg)die(只允许上传jpg格式的图片);//限制上传文件格式,去掉语句开头的两斜杠生效
if(!file_exists($dir));//检查目录文件夹是否存在,不存在则建立新文件夹
{
$v=split ('[/.-]', $dir);
for ( $i=0 ; $i <count($v) ; $i++)
{$dirname=$dirname.$v[$i];
if(!file_exists($dirname))mkdir($dirname);
$dirname=$dirname./;}
} //目录创建完毕
?>
<?
$dest=$dirname.date(ymdhis, time()).rand(100000,999999)...$extendname; //设置文件名为日期加上从100000到999999的随机数和扩展名
if(file_exists($dest))die(该文件已经存在);
if(move_uploaded_file($file['tmp_name'],$dest)) //调用文件上传函数
{$s_filesize=filesize($dest);//获取服务器端的文件大小
echo 文件上传成功,<a href=.$dest.>查看文件地址</a>;
echo <br>本地文件名:.$filename;
echo <br>远端文件名:.$dest;
echo <br>大 小:.ceil($s_filesize/1024). kb;
echo <br>扩展名:.$extendname;
echo <br>大 小:.$c_filesize. byte;}
else
{echo 还未进行文件上传;}
?>

总结了文件上传错误代码

upload_err_ok没有错误

upload_err_ini_size的上传文件超过最高价值存在中指定的文件

upload_err_form_size的上传文件超过最高价值所指定的max_file_size隐藏的部件。

upload_err_partial的文件上传被取消了,只有部分的文件上传

upload_err_nofile没有文件上传

推荐学习:《PHP教程

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...