DiscuzX3.5中,截屏图片的粘贴上传

news2024/11/20 11:45:21

目录

1 前言

2 网页端实现代码

3 服务器端php代码

4 测试一下

5 注意


1 前言

discuzX系列版本,无论是论坛还是门户,图片上传只能使用选择本地文件并上传的方式,与csdn直接用截屏后,ctrl+v粘贴上传图片的方式相比,不太方便。本文略微记录一下测试和实现的过程。

Discuz版本:Discuz!X3.5

2 网页端实现代码

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <script type="text/javascript" src="../../../template/default/style/cat/jquery.min.js"></script>
</head>

<body>
<div id="Msg" contentEditable="true" style="width: 600px; height:600px;border: 1px solid pink;"></div>
<script>
	//查找 Msg 元素,检测当粘贴时候,
	document.querySelector('#Msg').addEventListener('paste', function(e) 
	{
		if (!(e.clipboardData && e.clipboardData.items)) {
		   return;
		 }
		 for (var i = 0, len = e.clipboardData.items.length; i < len; i++) {
		   var item = e.clipboardData.items[i];
		   console.log(item);
		   if (item.kind === "string") {
			 item.getAsString(function (str) {
			   console.log(str);
			   layer.msg("请粘贴图片上传", {
				 icon: 2,
				 shade: [0.3, '#000'],
				 offset: '15px',
				 time: 1000
			   })
			 })
			 $("#Msg").html(""); //jQuery方法一
		   } else if (item.kind === "file") {
			 var blob = item.getAsFile();
			 console.log('fff:');
			 console.log(blob);
			 if (blob.size === 0) {
			   return;
			 }
			 var data = new FormData();
			 data.append("image", blob);
			 $.ajax({
			   url: '/pastepic.php?ac=up_paste_img',
			   type: 'POST',
			   cache: false,
			   data: data,
			   processData: false,
			   contentType: false,
			   success: function (result) {
				 console.log(result);
				 //if (result.code == "0") {
				   console.log(result.msg)
				   //var html = "<img src=" + result.data + " width='100' height='100'>";
				   //$("#Msg").html(html);
				 //} else {
				   console.log(result.msg)
				 //}
			   }
			 });
		   }
		 }
	}, false);
</script>

</body>
</html>


3 服务器端php代码

服务器端很简单,直接使用discuzX3.5现成的上传函数即可。

图片处理函数:pic_upload($file, 'album', 40, 30, 2)

图片保存在album文件夹,同时生成jpg格式的缩略图。

<?php
// mod文件只能被入口文件引用,不能直接访问
if(!defined('IN_DISCUZ')) {
	exit('Access Denied');
}
require_once libfile('function/discuzcode');
require_once libfile('function/home');

$ac = dhtmlspecialchars($_GET['ac']); // 获取数据动作,g1:取得某边界内,某类别的所有点


if ($ac == 'up_paste_img'){
    //服务器端生成图片
	echo 'will receive up_paste_img';
	//echo $_FILES;
	//print_r(array_values($_FILES));

	if(!empty($_FILES)) {
		foreach($_FILES as $varname => $file) {
			if($file['tmp_name']) {
				$result = pic_upload($file, 'album', 40, 30, 2);
				$pic = 'album/'.$result['pic'];
				echo '<br/>';
				echo $pic;
				
			}
		}
	}

	exit;		
}
elseif ($ac == 'blank'){
    // 网页模板
	include_once template("ccc/pic_paste");
}

?>

4 测试一下

注意url后面要用ac=blank参数,否则什么都看不到。

截屏,然后点击页面中红框,然后ctrl+v,图片复制到红框中,同时完成服务器上传。

 服务器album文件夹中,打开当前日期文件夹,可以看到上传的文件以及生成的缩略图文件:

5 注意

服务器上传功能,用到了discuz后台函数,所以需要经过discuz身份鉴别才可使用,因此要提前登录到discuz。

这样,我们不但使用了discuz的图片上传功能,同时充分利用了discuz强大的身份鉴别功能,简直太方便了。

 

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

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

相关文章

自动核对名单详细教程〖Python版〗

前言 大家好&#xff0c;今天我们来给大家分享一个很实用的东西。最近&#xff0c;有粉丝私信我&#xff0c;能不能做一个大学习自动核对名单的程序&#xff0c;我这个粉丝呢&#xff0c;她作为班级团支书&#xff0c;每次核对大学习的名单感到特别的头疼。那我接下来就来写一个…

国产操作系统---麒麟安装FastDFS

常用命令&#xff1a; fdfs_trackerd /etc/fdfs/tracker.conf start 启动 fdfs_storaged /etc/fdfs/storage.conf start 一、环境准备 环境&#xff1a;麒麟 4.19.90-24.4.v2101.ky10.x86_64 软件包 1. https://github.com/happyfish100/fastdfs/tagsfastDFS 1. …

论文阅读之Parameter-Efficient Transfer Learning for NLP(2019)

文章目录 AbstractIntroductionAdapter tuning for NLPExperiments总结参考 论文名称翻译过来就是“NLP的参数有效迁移学习”&#xff0c;其实就是是目前火热prompt learning&#xff08;提示学习&#xff09;出现的铺垫之一了。 NLP第三范式就是预训练模型微调下游任务&#x…

颠覆式变革来了?谷歌将改变搜索引擎展示方式,加入AI对话与短视频

来源 |华尔街见闻 作者 |周晓雯 谷歌搜索结果的展示页面&#xff0c;可能很快就会出现巨大变化。 据报道&#xff0c;谷歌正在改变其呈现搜索结果的方式&#xff0c;将人工智能对话以及更多的短视频和社交媒体帖子纳入其中&#xff0c;这与数十年来促使其成为搜索引擎“霸主”的…

UP主发车啦!撩人仙侠文系列,谁来管管这个反派啊!

本人书龄4年&#xff0c;平时很爱看小说&#xff0c;阅遍无数经典修仙文&#xff0c;熬夜党的最爱啊&#xff01;&#xff01;&#xff01;&#xff01;我心中的仙侠top&#xff0c;都是我的心头爱。 一般我都会跟朋友说这六本五星级仙侠好文&#xff0c;如果她们不看&#xf…

利用Appuploader上架IPA步骤

我的博客即将同步至腾讯云开发者社区&#xff0c;邀请大家一同入驻&#xff1a;https://cloud.tencent.com/developer/support-plan?invite_code1vtq5fxoqxjpg Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12&#xff0c;及上传ipa到App Store。方便在没有苹…

Shell脚本练习

求100以内正奇数和 注意点&#xff1a; $[]和$(())&#xff1a;是进行数学运算的。支持 - * / %&#xff1a;分别为 “加、减、乘、除、取模”。但是注意&#xff0c;bash只能作整数运算&#xff0c;对于浮点数是当作字符串处理的。{a..b}&#xff1a;表示范围。大于等于a&am…

python3+requests接口自动化测试实例详细操作

前段时间由于公司测试方向的转型&#xff0c;由原来的web页面功能测试转变成接口测试&#xff0c;之前大多都是手工进行&#xff0c;利用postman和jmeter进行的接口测试&#xff0c;后来&#xff0c;组内有人讲原先web自动化的测试框架移驾成接口的自动化框架&#xff0c;使用的…

什么是ERP?电商ERP和传统ERP到底有什么不同?

随着电子商务行业的不断发展&#xff0c;传统的ERP系统已经不再适应电商的业务需求&#xff0c;因为这些系统主要是设计用于传统制造和物流公司。 电商企业面临的业务需求与传统制造和物流公司截然不同&#xff0c;因此需要更加灵活和适应性强的解决方案来支持其日常运营。 对…

PointNetGPD代码复现

0、安装分析 Ubuntu版本pcl版本vtk版本18.041.918.2.0 1、pcl1.9安装 1.1 安装依赖 sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get install cmake cmake-gui sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-de…

托福高频真词List04 // 9:40~10:30 |阅读真题 // 11:00~11:50

目录 ​​​​​​​生词 熟词 阅读真题​​​​​​​ inclement adj.天气恶劣的&#xff1b;气候严酷的&#xff1b;狂风暴雨的&#xff1b;潮湿的&#xff1b;寒冷的 ​​​​​​​生词 propertycharacteristicfeaturen 特征substantiallysignificantlylargely…

一文读懂Web Component

前言 由于最近作者在学习微前端&#xff0c;web component也是其中一大特性&#xff0c;部分微前端框架使用到&#xff0c;也是深入学习了一下相关的知识&#xff0c;分享出来。 Web Component是什么&#xff1f; Web Component 实际上一系列技术的组合&#xff0c;主要包含…

【Java】Enum 枚举

java 中的枚举类型本质是默认继承于 java.lang.Enum 的类 常用方法 方法签名描述values()以数组形式返回枚举类型的所有成员ordinal()获取枚举成员的索引位置&#xff08;编号、序号&#xff09;valueOf()将普通字符串转换为枚举实例compareTo()比较两个枚举成员在定义是的顺…

名称空间(namespaces)与作用域

引入 在python解释器中运行一行代码import this就可以看到“传说”中的python之禅&#xff0c;它体现了使用python进行开发的规范&#xff0c;而最后一句 - Namespaces are one honking great idea -- lets do more of those!就是本文的主角。 名称空间(Namespaces) 名称空间…

PointNet:利用深度学习对点云进行3D分类和语义分割

PointNet&#xff1a;利用深度学习对点云进行3D分类和语义分割 参考自&#xff0c;PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 代码仓库地址为&#xff1a;https://github.com/charlesq34/pointnet/ 介绍 这次介绍的是一个比较基础的工作…

部署博客系统(部署博客系统到云服务器)

目录 1、建库建表 2、微调本地代码 3、打包&#xff08;使用Maven打成war包&#xff09; 4、拷贝到Tomcat的webapps 5、启动Tomcat服务器&#xff08;只有启动成功了才能进行访问&#xff09; 6、访问博客系统 1、建库建表 云服务器访问的是云服务器上的数据库,不是…

FFmpeg YUV 编码 H264

1. x264 库 由于 FFmpeg 不支持 h264 编码,所以需要集成 x264 库,现在使用的是当前最新版本 1.1 官方下载地址: videolanhttps://www.videolan.org/developers/x264.html 1.2 编译脚本地址: x264-ioshttps://github.com/kewlbear/x264-

【信息系统项目管理师】概要和框架-2023年5月7日总结

还有20天考试&#xff0c;记录下这二十天的学习内容。 今天之前4月4日到4月13日五天修炼看了一半&#xff0c;看到了项目风险管理&#xff0c;云里雾里看了个大概。 听野人老师的课从第一章跟着到了第十章&#xff0c;听一会儿就走神&#xff0c;听一会儿就走神。 改变思路&…

1.4 初探Spring - 采用Java配置类管理Bean

一、采用Java配置类管理Bean 1、打开项目 Maven项目 - SpringDemo 2、创建子包 在net.hf.spring包里创建day04子包 3、创建杀龙任务类 在day04子包里创建杀龙任务类 - SlayDragonQuest package net.hf.spring.day04;/*** 功能&#xff1a;杀龙任务类* 作者&#xff1…

Ubuntu搭建VPN服务

PPTD协议 此协议据说安全级别不高&#xff0c;苹果系统已经不支持&#xff0c;但windows依然支持 1.安装,root账号登录服务器 apt-get update apt-get install pptpd 2.配置主机ip及连接主机的设备所分配ip池,客户端分配的内网ip段。 vim /etc/pptpd.conf 将以下两行注释去…