php上传同一张图片,两种php实现图片上传的方法_PHP

图片上传在项目中经常用到,几乎没有任何一个项目可以脱离图片或者是文件上传。本篇我在这向大家介绍两种常规的上传方式。(注:在这里我们仅仅是对功能的实现,不去做过多的前端的样式)

一、利用form表单上传

此种方式是最原始的上传方式,前端就是简单的form表单,后端我们有PHP处理传输过来的文件。

首先看前端的代码 upload.html

然后新建php文件 handle.php 代码如下

$file = $_FILES['file'];//得到传输的数据

//得到文件名称

$name = $file['name'];

$type = strtolower(substr($name,strrpos($name,'.')+1)); //得到文件类型,并且都转化成小写

$allow_type = array('jpg','jpeg','gif','png'); //定义允许上传的类型

//判断文件类型是否被允许上传

if(!in_array($type, $allow_type)){

//如果不被允许,则直接停止程序运行

return ;

}

//判断是否是通过HTTP POST上传的

if(!is_uploaded_file($file['tmp_name'])){

//如果不是通过HTTP POST上传的

return ;

}

$upload_path = "D:/now/"; //上传文件的存放路径

//开始移动文件到相应的文件夹

if(move_uploaded_file($file['tmp_name'],$upload_path.$file['name'])){

echo "Successfully!";

}else{

echo "Failed!";

}

当然,此php处理代码不是很完善,其中对错误的情况没有进行处理,然而使用php处理上传文件的原理就是这样的,大家可以在此基础上进行优化,使其更加完善。

二、利用uploadify实现无刷新并且带进度条的上传首先下载uploadify插件,保存在项目中的某个文件夹下面,然后引入三个文件

然后引用以下代码

样式如下

14551H5AI440-34564.jpg

当然此按钮的样式我改动过,大家可以根据自己的需要修改样式文件,改变此按钮的样式

同样的php代码 handle.php

$file = $_FILES['Filedata'];//得到传输的数据

//得到文件名称

$name = $file['name'];

$type = strtolower(substr($name,strrpos($name,'.')+1)); //得到文件类型,并且都转化成小写

$allow_type = array('jpg','jpeg','gif','png'); //定义允许上传的类型

//判断文件类型是否被允许上传

if(!in_array($type, $allow_type)){

//如果不被允许,则直接停止程序运行

return ;

}

//判断是否是通过HTTP POST上传的

if(!is_uploaded_file($file['tmp_name'])){

//如果不是通过HTTP POST上传的

return ;

}

$upload_path = "D:/now/"; //上传文件的存放路径

//开始移动文件到相应的文件夹

if(move_uploaded_file($file['tmp_name'],$upload_path.$file['name'])){

echo "Successfully!";

}else{

echo "Failed!";

}

以上两种方式上传可以说PHP处理的原理是相同的,只是前台显示的样式不同,第二种方式是无刷新,并且带有返回值,可以方便我们做其它的处理。虽然常用,但是总归会受限制,使用起来不是很灵活。

随着html5的发展的越来越成熟,我们可以利用h5中的一些方法实现上传功能,此时后台PHP的处理代码完全不同于以上两种方式,并且使用起来很灵活。由于篇幅限制,本篇我不向大家介绍这种方式,有兴趣的可以参考php+html5实现无刷新图片上传教程,希望大家会喜欢。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用C语言实现中文到unicode码的转换

转自: http://blog.csdn.net/qq_21792169/article/details/50379275 源文件用不同的编码方式编写,会导致执行结果不一样 由于本人喜欢用Notepad编辑器,该编辑器的好处是小巧灵活,但是有几个地方做的不足,但是我都能够很好的采取相应的措施来…

java位运算求幂,程序员必学:快速幂算法

前阵子,有小伙伴在我B站的算法教程底下留言小伙伴们有任何疑问或者希望我解说任何内容,都可以在我的小我私家B站或民众号(xmg_mj)留言哦,我会尽我最大能力、只管抽时间去写文章\录视频来回应人人。关于快速幂实在快速幂相关的问题&#xff0c…

java过滤器

过滤器 1、Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头…

memory php 变量,php入门-变量

打印一串字符。echo PHP学到家,走到哪儿都不怕!;?>输出236的计算结果echo 236;?>.连接符echo "Good,"."morning!";?>注释//echo "欢迎同学们!";echo 12345;?>什么是变量$var "学PHP&quo…

假设检验

假设检验分参数假设和非参数假设。 假设 先假设原假设H0,对应的反面叫做备择假设H1。SAS一般沿用的规则是NEYMAN和PEARSON提出的:在控制犯第一类错误的原则下,是犯第二类错误的概率尽量小(即,原假设受到保护&#xff0…

jeesite在eclipse中部署

1:下载下来最新版本的jeesite,首先要在本地安装好maven运行环境 2:运行 bin/eclipse.bat 生成工程文件并下载jar依赖包 如果需要修改默认项目名,请打开pom.xml修改第7行artifactId,然后再执行eclipse.bat文件 3&…

php抖音关注列表,网页PHP抖音批量取消关注JS代码

在很多时候我们抖音关注的人太多,想要批量取消但是一个一个点击太麻烦了,如何解放双手批量取消关注呢?今天分享一段JS代码,可在线批量取消关注,需电脑才能操作。首先打开抖音创作服务平台登录:https://crea…

python 灰度改二值,Python Image 对验证码进行灰度和二值法处理 去掉边框

def binarizing(img, threashold):img img.convert("L") # 转灰度pixdata img.load()w, h img.sizefor y in range(h):for x in range(w):if pixdata[x, y] < threashold:pixdata[x, y] 0else:pixdata[x, y] 255return imgdef removeFrame(img, width)::para…

hadoop 2.7.3伪分布式安装

hadoop 2.7.3伪分布式安装 hadoop集群的伪分布式部署由于只需要一台服务器&#xff0c;在测试&#xff0c;开发过程中还是很方便实用的&#xff0c;有必要将搭建伪分布式的过程记录下来&#xff0c;好记性不如烂笔头。 hadoop 2.7.3 JDK 1.8.91 到Apache的官网下载hadoop的二进…

php 环境变量有什么用,什么是环境变量,Linux环境变量及作用

变量是计算机系统用于保存可变值的数据类型&#xff0c;我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中&#xff0c;环境变量是用来定义系统运行环境的一些参数&#xff0c;比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。值得一提的是&#xff0c;L…

Web Api 转

GET&#xff1a;生到数据列表&#xff08;默认&#xff09;&#xff0c;或者得到一条实体数据 POST&#xff1a;添加服务端添加一条记录&#xff0c;记录实体为Form对象 PUT&#xff1a;添加或修改服务端的一条记录&#xff0c;记录实体的Form对象&#xff0c;记录主键以GET方式…

matlab 刻度非均匀控制,MATLAB 出一张好看的图

1、坐标轴的视点(viewpoint)&#xff1a;从哪个方向看整个坐标系统&#xff0c;这决定了坐标轴的方向和位置&#xff0c;通过view函数实现视点的设置&#xff1b;view([z y ])&#xff1a;(将坐标系统想象为一座房子&#xff0c;而自己是个会飞的天使&#xff0c;最初你在房子的…

weak_ptr打破环状引用

转自&#xff1a;http://blog.csdn.net/malong777/article/details/48974559 weak_ptr是一种不控制对象生存周期的智能指针&#xff0c;它指向一个shared_ptr管理的对象...它不会改变shared_ptr的引用计数——《C Primer .5th》。很明显&#xff0c;weak_ptr的特点是“弱引用”…

百度链接提交php获取状态码,新网站,在百度提交了首页链接,但是一直没有收录,也没有爬虫抓取,怎么回事呢?(悬赏1元) - 搜外SEO问答...

新站前期需要做哪些操作&#xff1a;1、上线前保证网站的内容已经有一定的丰富性&#xff0c;可供爬虫已经有20的主关键词相关的界面或文章&#xff0c;50为最佳。2、新站的标题不要堆彻关键词&#xff0c;以主关键词主关键词描述语句品牌词 这个类型的标题为最佳。3、标题中出…

使用 git-cherry-pick 迁移提交

参考 git-cherry-pick 后续补上

前端js模糊搜索(模糊查询)

1.html结构&#xff1a; <label for"searchShop" class"clear pos-a" style"top:17px;"> <input type"text" id"searchShop" placeholder"场所搜索"> <input type"but…

php代码审计思路,代码审计思路讨论

原标题&#xff1a;代码审计思路讨论前言首先感谢手电筒的建议&#xff0c;建议我从Bluecms来开始学习代码审计。感谢桑桑格&#xff0c;风哥的问题解答。文章主要是写下我自己在代码审计的时候所思所想。当然并不是太过严谨&#xff0c;也有可能存在错误。这里主要是写出了审计…

LinkedHashSet

特点: 有序 , 唯一 底层的数据结构为: 链表和哈希表 , 链表保证有序 , 哈希表保证唯一 import java.util.LinkedHashSet; public class Demo2_LinkedHashSet {/*** param args* LinkedHashSet* 底层是链表实现的,是set集合中唯一一个能保证怎么存就怎么取的集合对象* 因为是Has…

oracle如何自定义类型,Oracle 自定义类型

一、子类型这种类型最简单&#xff0c;类似类型的一个别名&#xff0c;主要是为了对常用的一些类型简单化&#xff0c;它基于原始的某个类型。如&#xff1a;有些应用会经常用到一些货币类型&#xff1a;number(16,2)。如果在全局范围各自定义这种类型&#xff0c;一旦需要修改…

Dubbo源码分析:ThreadPool

定义了通过URL对象作为参数获取Executor对象的get&#xff25;xecutor方法。所有实现ThreadPool接口的类都是基于ThreadPoolExecuotr对象来实现的。 类图 转载于:https://www.cnblogs.com/wspgbw/p/6409933.html