php中图片上传_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 "
您的文件已经上传完毕 上传图片预览: ";
}
}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实现图片上传并进行替换操作相关推荐
- php一句话图片木马过滤_php一句话图片木马怎么解析
一句话木马解析 首先,学习渗透时,木马大概也就三种:大马.小马.一句话. 常见的一句话:<?php @eval($_POST['x'])?> 这个应该是最常见的了...看一下他的组成. 首 ...
- java图片透明浮水印_PHP 为图片加上浮水印 (含浮水印透明背景处理)
PHP 要为图片加上浮水印: 就是要将两张图合并在一起, 浮水印的图片要盖在上面. 现实状况还会遇到原图要缩略图后, 浮水印的图片可能也要跟着缩略图, 这些部分再此就不写了, 此部份缩略图可见此篇: ...
- php用什么上传代码,php常用文件怎么上传_PHP常用文件上传代码_一聚教程网
在PHP的使用中,它有着非常方便的操作设计,这次文章就给大家介绍下怎么使用PHP实现常用文件上传,相信这也是大多数人会遇到的问题,下面我们具体看看上传方法. _path = $path; $this- ...
- php 上传图片 ftp,ftp文件上传_php ftp文件上传
摘要 腾兴网为您分享:php ftp文件上传,有道英语,央视影音,学习计时,微光等软件知识,以及天天小视频,24小时时间计算器,oki5500f打印机驱动,中天期货,差旅天下,filegee企业文件同 ...
- php 输出图片给js,如何在php中利用croppic.js对图片进行剪切并上传
如何在php中利用croppic.js对图片进行剪切并上传 发布时间:2021-01-30 16:41:02 来源:亿速云 阅读:92 作者:Leah 这篇文章将为大家详细讲解有关如何在php中利用c ...
- ueditor百度编辑器中,多图上传后,图片顺序乱掉的处理方法
上传后,图片的顺序和预期的不一致,需要修改ueditor的源码. 一.找到editor/dialogs/attachment/attachment.js文件 1.将_this.fileList.pus ...
- php替换图片_php实现图片上传并进行替换操作
首先建立两个文件: change.html 和 change.php change.html 文件的表单代码如下: change file example. 文件: 这里有几个要注意的地方,首先看这句 ...
- svg上传服务器无法显示,让WordPress支持上传SVG格式图片并显示在媒体库中的方法...
让WordPress支持上传SVG格式图片并显示在媒体库中的方法 发布时间:2020-12-11 14:18:12 来源:亿速云 阅读:167 作者:小新 这篇文章将为大家详细讲解有关让WordPre ...
- HTML5输入框里加图片代码,做了一个input上传加号框,图片上传后显示在框中,怎么让加号消失?...
CSS代码: .div_imgall {border:1px solid blue;width:100px;height:100px;position:relative;} .input_flie { ...
最新文章
- (iOS)sqlcipher和FMDB的使用总结(原创)
- Android调试工具之ADB
- c include 多层目录_Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?
- qsort函数使用手册
- vscode remote 第三方库_还能这么玩?用VsCode画类图、流程图、时序图、...不要太爽
- 别被数据分析师骗了!用数据说谎的三种办法
- 生态系统服务——土壤保持量分布数据
- 《终极算法》读书笔记(二)终极算法
- java运维工程师简历_运维工程师个人简历怎么写?
- Aviation turbofan starting model
- node 单元测试_如何在Node中模拟对单元测试的请求
- 通过CSS实现太极图案例
- 【数据结构与算法】LeetCode面试真题,带你领略算法思想
- ChatGPT修bug横扫全场,准确率达78%!程序员喜忧参半
- 套接字I/O模型-WSAEventSelect(转载)
- Python编程经典案例【考题】自由落体运动球的运动轨迹
- excel 两组数据交点_如何在百万级的数据里找到别人正在赚钱的项目?【实操长文】...
- 51Nod 1789 跑的比谁都快
- 80后已经套现离场,90后却要“跪着活下去”
- 解决Office Word不能切换中文输入