傅令江的光影色彩世界
留住记忆的点滴
  • 首页
  • 文学
    • 诗词鉴赏
    • 美文共读
    • 原创
  • 编程
    • php
    • asp
    • .net
    • VB
    • C/C++
    • 易语言
    • js
    • 其他
    • 逆向
  • 运维
    • windows
    • linux
  • 光影色彩
    • 电影
    • 音乐
  • 科技
    • 互联网
    • 手机
  • 生活
    • 情感
  • 微语
7月122022

PHP上传png,jpg,jpeg图片格式并转换成webp代码

作者:傅令江   发布:2022-7-12 11:47   分类:php   阅读:2318次   评论:0条  

前段

<!DOCTYPE html>
<html lang="zh_CN">
<head>
	<meta charset="UTF-8">
	<title>图片(jpg,jpeg,png)转webp</title>
	<style>
		.center{
			text-align: center;
		}
		.bt{
			font-size: 25px;
			font-weight: 700;
		}
		.xz{
			color: red;
		}
		.loading{
			display:none;
		}
	</style>
</head>
<body>
	<section>
		<p class="bt center">图片(jpg/jpeg/png)转webp格式</p>
	</section>
	<section class="center"><!-- 业务核心代码 -->
		<form id="form1">
			<input type="file" multiple name="file" accept="image/png,image/gif,image/jpg,image/jpeg">
			<input type="button" value="提交" onclick="loadXMLDoc()" disabled="true">
		</form>
		<br>
		<div>
			<img class="loading" src="loading.gif" alt="loading" width="200" height="200">
			<img id="myDiv" src="" width="300">
			<p class="center"><a class="xz" id="xiazai" href="" target="_blank" rel="external nofollow noopener" download="webp.webp">点击下载</a>或者右击另存为,保存图片</p>  
		</div>		
	</section>
	<script>
	//设置未选择上传文件时,禁用提交按钮
	var a = document.getElementsByTagName('input')[0];
	var b = document.getElementsByTagName('input')[1];
	a.oninput = function(){
		if (a!=null&&a!="") {
			b.disabled = false;
		}
	}		
	// ajax异步请求服务器
	function loadXMLDoc()
	{	
		var loading = document.getElementsByClassName('loading')[0];
		loading.style.display = "inline";
		var form=document.getElementById("form1");
        var fd =new FormData(form);
	var xmlhttp;
	if (window.XMLHttpRequest)
	{
		//  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
		xmlhttp=new XMLHttpRequest();
	}
	else
	{
		// IE6, IE5 浏览器执行代码
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.onreadystatechange=function()
	{
		if (xmlhttp.readyState==4 && xmlhttp.status==200)
		{	
			loading.style.display = "none";
			document.getElementById("xiazai").href = xmlhttp.responseText;
			document.getElementById("myDiv").src = xmlhttp.responseText;			
		}
	}
	xmlhttp.open("post","webp.php",true);
	xmlhttp.send(fd);
	}
</script>
</body>
</html>


后端webp.php代码复制代码



<?php 
$name = $_FILES['file']['name'];//文件名
$dizhi = $_FILES['file']['tmp_name'];//图片临时地址,脚本结束则销毁
$houzhui = $_FILES['file']['type'];//图片类型
$str = md5(uniqid(mt_rand(), true));//生成唯一ID  
$zz = base64EncodeImage($houzhui,$dizhi,$str);
echo "data:image/webp;base64,".$zz;
function base64EncodeImage($houzhui,$dizhi,$str)
{
	switch ($houzhui) {
	case 'image/png':
		$im = imagecreatefrompng($dizhi);
		break;
	case 'image/gif':
		$im = imagecreatefromgif($dizhi);
		break;
	case 'image/jpeg':
		$im = imagecreatefromjpeg($dizhi);
		break;
	case 'image/jpg':
		$im = imagecreatefromjpeg($dizhi);
		break;	
	default:
		exit("上传文件格式不正确");
		break;
	}
	header("Content-type:image/webp");
	imagewebp($im,'img/'.$str.'.webp');
	imagedestroy($im);
	return base64_encode(file_get_contents('img/'.$str.'.webp'));//先将文件写入字符串,在进行base64编码
}
?>




本文固定链接: https://www.fulingjiang.cn/php/257.html

blogger
该日志由 傅令江 于2022-7-12 11:47 Tuesday发表在 php 分类下。
版权所有:《傅令江的光影色彩世界》 → 《PHP上传png,jpg,jpeg图片格式并转换成webp代码》;
除特别标注,本博客所有文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:
上一篇::如何使用PHP读取zip归档文件中的单个文件
下一篇:php页面缓存类

热门文章

  • 兄弟二周年祭

相关文章

  • PHP酷狗音乐采集类
  • thinkphp6 session 为什么会失效
  • PHP实现的AES加密、解密封装类与用法示例
  • PHP自适应分页代码,可以灵活定制CSS样式和分页链接效果!
  • php多个图片合成一张图片
取消回复

发表评论

亲,头像对么?

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


  • 日历

  • 存档

    • 2024年10月(1)
    • 2023年2月(1)
    • 2022年11月(1)
    • 2022年10月(10)
    • 2022年9月(13)
    • 2022年8月(2)
    • 2022年7月(14)
    • 2022年6月(2)
    • 2022年5月(8)
    • 2022年4月(7)
    • 2022年3月(13)
    • 2022年2月(2)
    • 2022年1月(9)
    • 2021年12月(2)
    • 2021年11月(4)
    • 2021年10月(2)
    • 2021年9月(6)
    • 2021年7月(4)
    • 2021年6月(3)
    • 2021年5月(3)
    • 2021年4月(11)
    • 2021年3月(13)
    • 2021年2月(2)
    • 2021年1月(1)
    • 2020年12月(1)
    • 2020年4月(5)
    • 2019年9月(1)
    • 2019年8月(1)
    • 2019年5月(3)
    • 2018年3月(1)
    • 2017年10月(1)
    • 2016年7月(1)
    • 2016年4月(1)
    • 2015年12月(1)
    • 2015年11月(3)
    • 2015年9月(1)
    • 2015年8月(10)
    • 2015年7月(1)
    • 2015年6月(1)
    • 2015年4月(1)
    • 2015年3月(3)
    • 2015年2月(8)
    • 2015年1月(4)
    • 2014年12月(1)
    • 2014年11月(27)
    • 2014年10月(13)
    • 2014年9月(14)
    • 2014年8月(26)
    • 2014年7月(21)
  • 最新评论

    • 令狐江:
      喜欢这首歌是因为可以引起共鸣!
  • 链接

    • 演讲稿网
    • Recollect
    • 演讲稿
    • 祁阳人生活网
    • 我爱演讲稿网
  • 搜索

  • 标签

      函数 自定义方法 SEO 分页 分页函数 分页方法 nginx重新的一些规则
  • 分类

    • 文学(0)
    • 编程(0)
    • 运维(0)
    • 光影色彩(0)
    • 科技(0)
    • 生活(0)
    • 诗词鉴赏(3)
    • 美文共读(1)
    • 原创(10)
    • php(111)
    • asp(1)
    • .net(0)
    • VB(0)
    • C/C++(0)
    • 易语言(0)
    • js(8)
    • 其他(9)
    • 逆向(2)
    • windows(11)
    • linux(121)
    • 电影(0)
    • 音乐(1)
    • 互联网(4)
    • 手机(0)
    • 情感(2)
  • 最新文章热门文章随机文章

    • 兄弟二周年祭
    • openai给的ionCube 解密代码,应该是老版本可以这样
    • WordPress – 5秒盾防CC(PHP通用代码)
    • 我高中最好的朋友今天猝死了-伤心得不行
    • Linux系统中 systemd-journaldCPU占用异常的解决方法
    • SVN Skipped 'xxx' -- Node remains in conflict 错误的解决办法
    • 解决Linux读写nfs共享盘速度慢的问题
    • php 获取302跳转后的地址
    • 让vsftp显示隐藏文件的办法,比如显示 .htaccess
    • 添加自签名https证书到centos系统信任的问题
    • 强制将IE,Chrome设置为指定兼容模式来解析
    • PHP自动定时循环执行任务
    • CentOS/RHEL 安装Install Subversion 1.8.9 ( SVN Client ) 安装最新版本的svn客户端
    • SVN在另类环境中实现自动提交的方法,nfs共享的方法
    • 用Piranha来实现WEB的负载均衡
Copyright © 2001-2025 傅令江的光影色彩世界. Powered by www.fulingjiang.cn ICP备案:京ICP备14015190号-5