首先建立两个文件: 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实现图片上传并进行替换操作相关推荐

  1. php一句话图片木马过滤_php一句话图片木马怎么解析

    一句话木马解析 首先,学习渗透时,木马大概也就三种:大马.小马.一句话. 常见的一句话:<?php @eval($_POST['x'])?> 这个应该是最常见的了...看一下他的组成. 首 ...

  2. java图片透明浮水印_PHP 为图片加上浮水印 (含浮水印透明背景处理)

    PHP 要为图片加上浮水印: 就是要将两张图合并在一起, 浮水印的图片要盖在上面. 现实状况还会遇到原图要缩略图后, 浮水印的图片可能也要跟着缩略图, 这些部分再此就不写了, 此部份缩略图可见此篇: ...

  3. php用什么上传代码,php常用文件怎么上传_PHP常用文件上传代码_一聚教程网

    在PHP的使用中,它有着非常方便的操作设计,这次文章就给大家介绍下怎么使用PHP实现常用文件上传,相信这也是大多数人会遇到的问题,下面我们具体看看上传方法. _path = $path; $this- ...

  4. php 上传图片 ftp,ftp文件上传_php ftp文件上传

    摘要 腾兴网为您分享:php ftp文件上传,有道英语,央视影音,学习计时,微光等软件知识,以及天天小视频,24小时时间计算器,oki5500f打印机驱动,中天期货,差旅天下,filegee企业文件同 ...

  5. php 输出图片给js,如何在php中利用croppic.js对图片进行剪切并上传

    如何在php中利用croppic.js对图片进行剪切并上传 发布时间:2021-01-30 16:41:02 来源:亿速云 阅读:92 作者:Leah 这篇文章将为大家详细讲解有关如何在php中利用c ...

  6. ueditor百度编辑器中,多图上传后,图片顺序乱掉的处理方法

    上传后,图片的顺序和预期的不一致,需要修改ueditor的源码. 一.找到editor/dialogs/attachment/attachment.js文件 1.将_this.fileList.pus ...

  7. php替换图片_php实现图片上传并进行替换操作

    首先建立两个文件: change.html 和 change.php change.html 文件的表单代码如下: change file example. 文件: 这里有几个要注意的地方,首先看这句 ...

  8. svg上传服务器无法显示,让WordPress支持上传SVG格式图片并显示在媒体库中的方法...

    让WordPress支持上传SVG格式图片并显示在媒体库中的方法 发布时间:2020-12-11 14:18:12 来源:亿速云 阅读:167 作者:小新 这篇文章将为大家详细讲解有关让WordPre ...

  9. HTML5输入框里加图片代码,做了一个input上传加号框,图片上传后显示在框中,怎么让加号消失?...

    CSS代码: .div_imgall {border:1px solid blue;width:100px;height:100px;position:relative;} .input_flie { ...

最新文章

  1. (iOS)sqlcipher和FMDB的使用总结(原创)
  2. Android调试工具之ADB
  3. c include 多层目录_Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?
  4. qsort函数使用手册
  5. vscode remote 第三方库_还能这么玩?用VsCode画类图、流程图、时序图、...不要太爽
  6. 别被数据分析师骗了!用数据说谎的三种办法
  7. 生态系统服务——土壤保持量分布数据
  8. 《终极算法》读书笔记(二)终极算法
  9. java运维工程师简历_运维工程师个人简历怎么写?
  10. Aviation turbofan starting model
  11. node 单元测试_如何在Node中模拟对单元测试的请求
  12. 通过CSS实现太极图案例
  13. 【数据结构与算法】LeetCode面试真题,带你领略算法思想
  14. ChatGPT修bug横扫全场,准确率达78%!程序员喜忧参半
  15. 套接字I/O模型-WSAEventSelect(转载)
  16. Python编程经典案例【考题】自由落体运动球的运动轨迹
  17. excel 两组数据交点_如何在百万级的数据里找到别人正在赚钱的项目?【实操长文】...
  18. 51Nod 1789 跑的比谁都快
  19. 80后已经套现离场,90后却要“跪着活下去”
  20. 解决Office Word不能切换中文输入

热门文章

  1. Linux 下搭建Apache,Linux 下搭建Apache 服务器
  2. 湖北师范大学c语言考试题目,湖北师范学院2010期末C语言试卷.doc
  3. 多继承中构造器和析构器的调用顺序
  4. ES6新特征总结与介绍——声明与表达式
  5. Spring Cloud微服务分布式云架构—集成项目简介
  6. 智能家居——IoT零基础入门篇
  7. iOS开发之检查更新
  8. map and flatmap 区别
  9. 《***测试实践指南》D03
  10. Apple 远程推送APNS 服务