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,一经查实,立即删除!

相关文章

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

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

java过滤器

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

假设检验

假设检验分参数假设和非参数假设。 假设 先假设原假设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…

前端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;也有可能存在错误。这里主要是写出了审计…

Dubbo源码分析:ThreadPool

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

MySQL存储过程及触发器

一、存储过程 存储过程的基本格式如下&#xff1a; -- 声明结束符 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 CREATE PROCEDURE pro_test() --存储过程名称(参数列表) BEGIN-- 可以写多个sql语句; -- sql语句流程控制SELECT * FROM employee; END $ -- 结…

destoon 短信发送函数及短信接口修改

// $DT在common.inc.php中定义&#xff0c; $CACHE cache_read(module.php); $DT $CACHE[dt]; 从缓存里读取网站配置信息。 //$db 数据库类&#xff0c;$DT 全局配置&#xff0c;$DT[sms] 开启手机短信&#xff0c;$DT_TIME系统时间&#xff0c;$DT_IP 当前ip地址&#xff0…

安卓界面组件-文本框

前面三篇文章本质上是围绕着View类进行的。View是安卓UI的基础类&#xff0c;我们的安卓开发“千里之行”是从View开始的。 安卓界面UI有大量的组件&#xff0c;组件的继承和间接继承于View。有一类组件很基本&#xff0c;这就是TextView文本框&#xff0c;作用是显示文本。在T…

redis linux 运行依赖,在Ubuntu系统下安装Redis Desktop Manager的方法

以下为你介绍在Ubuntu16.04系统下安装Redis可视化工具Redis Desktop Manager。不管是哪个Redis Desktop Manager版本&#xff0c;都可以采用下面的安装方式进行。Redis Desktop Manager安装方法1.首先在终端中启动redis服务执行命令&#xff1a;sudo service redis start 与 ps…

bzoj4631

4631: 踩气球 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 260 Solved: 133[Submit][Status][Discuss]Description 六一儿童节到了&#xff0c; SHUXK 被迫陪着M个熊孩子玩一个无聊的游戏&#xff1a;有N个盒子从左到右排成一排&#xff0c;第i个盒子里装着Ai个气球。SH…

hpcp5225设置linux网络,惠普HP color laserjet CP5225打印机驱动

软件标签&#xff1a;惠普CP5225驱动是为同名打印机推出的驱动程序&#xff0c;维持着打印机的正常工作&#xff0c;小编提供了驱动下载&#xff0c;若是你的惠普CP5225打印机在使用过程中出现不能打印或者无法被电脑识别等问题&#xff0c;快来本站下载该驱动来解决问题吧!安装…

Dubbo底层采用Socket进行通信详解

由于Dubbo底层采用Socket进行通信&#xff0c;自己对通信理理论也不是很清楚&#xff0c;所以顺便把通信的知识也学习一下。 n 通信理论 计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。 1.一组信息&#xff08;通常是字节&#xff09;的各位数据被…

linux 网络协议栈变化,ZZ Linux网络协议栈学习

最近学习linux内核网络协议栈&#xff0c;把数据包接收流程大致理了一下&#xff0c;前面也看了瀚海书香兄的总结&#xff0c;感觉总结的比我精炼&#xff0c;抓住了主干&#xff0c;是一目了然的那种我的这篇本来是自己看得&#xff0c;因此把我自己学习中一些遇到的问题写了出…

linux安装各种文件格式,Embeded linux中的各类文件系统

Cramfs&#xff1a;(优点&#xff1a;只读&#xff0c;目的&#xff1a;不可更改文件、防入侵)1.下载cramfs-1.1源码工具http://files.cnblogs.com/files/pokerface/cramfs-1.1.tar.gz2.解压tar xvzf cramfs-1.1.tar.gz -C /home/liuzhengwu/tools3.编译make4.得到COPYING cra…

初始Angularjs2

一、为什么使用Angularjs2 Angularjs2全面使用了模块化、组件化的思想&#xff0c;它有如下的特性&#xff1a; 1&#xff09;模块化 在ng2的应用中&#xff0c;所有的系统功能都是模块化的&#xff0c;开发者只需要按需导入模块化的好处在于可以当应用加载时&#xff0c;是按需…

linux中输入ls出现蓝色的点,linux上ls的蓝色太深,怎么处理

linux下ls的蓝色太深&#xff0c;怎么办&#xff1f;在linux下使用ls命令时&#xff0c;会将目录以蓝色显示。在某些显示器上&#xff0c;黑底蓝字&#xff0c;看起来相当费力&#xff0c;以至于我有时候不得不使用dir命令&#xff0c;全部显示成白色。先看一个图&#xff1a;看…