php上传图片替换文件,PHP如何将图片上传并替代?_后端开发

PHP将图片上传并替代的要领:起首竖立两个文件;然后须要一个隐蔽域来限定上传文件的最大长度;接着先推断文件范例是不是为图片花样,假如则上传文件;末了上传文件到并替代指定文件即可。

e5a4e75fd4eb34a118c2c64d97a7a262.png

PHP将图片上传并替代的要领:

起首竖立两个文件: change.html 和 change.php

change.html文件的表单代码以下:

change file example.

文件:

这里有几个要注意的处所,起首看这句

这里我们采纳POST要领,一般阅读器还支撑PUT要领,固然这须要对剧本举行修正,我并不发起这么做。表单中必需设置enctype="multipart/form-data,如许,服务器就晓得上传文件带有通例表单信息,记着,这个是必需设置的。

另外还须要一个隐蔽域来限定上传文件的最大长度:,这里name必需设置成MAX_FILE_SIZE,其值就是上传文件的最大长度,单元是B,这里我限定成2M。

再看这句:

type="file"说清楚明了文件范例,如许一个基础的上传文件接口就完成了,接下来讲讲如何用PHP来处置惩罚上传的文件,另外你的php.ini中设置的上传文件最大长度大概会影响到你的现实上传,请依据现实情况修正,另PHP的上传是先传到暂时目次,在移至指定目次的;暂时目次的可依据须要修正,也可运用默认值。

以下为表单提交change.php文件代码,来看看这个文件都有什么:

header("content-type:text/html;charset=utf-8");

/**

* @param string $oldfile 须要替换的文件名(包括细致路径名)

*/

function changeFile($oldfile){

$newfile = $_FILES['file']['name'];//猎取上传文件名

$fileclass = substr(strrchr($newfile, '.'), 1);//猎取上传文件扩展名,做推断用

$type = array("jpg", "gif", "bmp", "jpeg", "png");//设置许可上传文件的范例

if(in_array(strtolower($fileclass), $type)){

if(file_exists($oldfile)){

unlink($oldfile);

}

if(is_uploaded_file($_FILES['file']['tmp_name'])){//必需经由过程 PHP 的 HTTP POST 上传机制所上传的

if(move_uploaded_file($_FILES['file']['tmp_name'], $oldfile)){

//输出图片预览

echo "

您的文件已上传完毕 上传图片预览:
%24oldfile
";

}

}else{

echo "

上传失利,文件大于2M,请从新上传!
";

}

}else{

$text = implode(",", $type);

echo "

您只能上传以下范例文件:", $text, "

";

// echo "";

}

}

changeFile("./files/1.png");

刚看这些你大概有点晕~~,逐步看,你就会发明实在这玩意SO EASY!!

先讲下道理,该程序以上传图片为例,先推断文件范例是不是为图片花样,假如则上传文件,接着上传文件到并替代指定文件,胜利上传则输出上传的图片预览。这里要对程序中一些函数作些诠释。

先看

substr(strrchr($newfile, '.'), 1)

strrchar()函数有什么作用呢,我举个例子人人就晓得,比方一个图片文件 pic.jpg,我们用 strrchar()处置惩罚,strrchr(pic.jpg,'.'),它将返回.jpg,邃晓了吗?该函数返回指定字符在该字符串末了涌现的位置后的字符串。合营 substr() 我们就能够取到jpg,如许我们就获得了文件的后缀名,来推断上传文件是不是相符指定花样。本程序把指定的花样放在一个数组中,现实运用时可依据须要增加。

接着,我们挪用推断文件范例的函数,并将其转化为小写strtolower($_FILES['file']['name']),这里有个很症结的东东$_FILES ,这是个超等全局数组,保留了须要处置惩罚的表单数据,假如开启了register_globals,也能够直接接见,但这是不安全的。看适才谁人上传接口,依据这个表单称号,我们能够获得许多信息:

$_FILES['file']['name']-- 获得文件称号

$_FILES['file']['tmp_name']--获得暂时存储位置

$_FILES['file']['size']--获得文件大小

$_FILES['file']['type']--获得文件MIME范例

获得这些信息,就能够轻松推断文件的信息了,是不是是很轻易?^_^,接下来另有一些函数须要相识,

file_exists()--推断指定目次是不是存在,不存在我们固然不能上传

is_uploaded_file--推断文件是不是已经由过程HTTP POST上传

move_uploaded_file--将上传文件移至指定目次

胜利上传,我们就输出预览,不然输出上传失利

相干进修引荐:PHP编程从入门到通晓

以上就是PHP如何将图片上传并替代?的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值