Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >js通过contentWindow控制iframe子页面元素点击事件,并把值传给父页面[通俗易懂]

js通过contentWindow控制iframe子页面元素点击事件,并把值传给父页面[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-11-03 02:21:08
发布于 2022-11-03 02:21:08
8.7K00
代码可运行
举报
运行总次数:0
代码可运行

本来需要点击一个图片后,显示一个iframe上传框.点击上传,从而操作子页面中的点击上传动作,再把值传给父页面.或控制父页面中iframe元素的显示状态.不过.通过upload()函数,可以不用显示上传框了,直接激活子页面中的上传动作.另外,onchange事件则可以自动提交上传,不必用户点击上传按钮了.三步并做一步

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 父页面中的上传按钮 -->
<img src="ui/images/myimg.png" class="link" onclick="upload()" />

<iframe src="upload.php"id="box_paint_container" ></iframe>



upload.php 文件中有一个表单



<form enctype="multipart/form-data" action="upload.php"id="forms" method="post" name="upform" style="position: relative; ">  
  <input name="upfile" type="file"id="file" onchange="document.getElementById('forms').submit();
  window.parent.document.getElementById('box_paint_container').style.display='none';;"> 
</form>  

下面是父页面中的一个函数
<script type="text/javascript">

function upload(){
var a = document.getElementById('box_paint_container').contentWindow.document.getElementById("file");
a.click();

}
</script>

upload.php中还有一个php上传功能,兼容手机版,可上传单张图片. 一并分享下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//上传文件类型列表 
require_once 'config.php';
require_once '../system/config/database.inc.php';
//require_once '../system/funcs/global.fun.php';
require_once 'incl/main.inc';
dbconnect(); $settings=get_settings(0); $options=get_options(); $lang=get_language(); 
if(isset($_COOKIE['uid'])){
$uid=intval(_encrypt(_getcookie("uid"),'DECODE'));	
$shopid=$_COOKIE['shopid'];	
$query='SELECT * FROM '.$dbss['prfx']."_member WHERE uid=$uid";
$result=neutral_query($query);
if(neutral_num_rows($result)>0){
$ext_user=neutral_fetch_array($result);
$user=array();
$uname=$ext_user['username'];
$heading=$ext_user['headimg']==''?'/statics/uploads/'.$ext_user['img']:$ext_user['headimg'];
if($uname==''){
$uname=substr_replace($ext_user['mobile'],"****",5,2);
}
}
}
if(!isset($uid)){
//权限
redirect('/index.php/mobile/user/login.php');die();
}
$uptypes=array(  
'image/jpg',  
'image/jpeg',  
'image/png',  
'image/pjpeg',  
'image/gif',  
'image/x-png'  
);  
$max_file_size=2000000;     //上传文件大小限制, 单位BYTE  
$destination_folder="uploadimg/"; //上传文件路径  
$watermark=0;      //是否附加水印(1为加水印,其他为不加水印);  
$watertype=1;      //水印类型(1为文字,2为图片)  
$waterposition=1;     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);  
$waterstring="http://www.xplore.cn/";  //水印字符串  
$waterimg="xplore.gif";    //水印图片  
$imgpreview=0;      //是否生成预览图(1为生成,其他为不生成);  
$imgpreviewsize=1/2;    //缩略图比例  
if ($_SERVER['REQUEST_METHOD'] == 'POST')  
{
if (!is_uploaded_file($_FILES["upfile"]['tmp_name']))  
//是否存在文件  
{  
echo "图片不存在!";  
exit;  
}  
$file = $_FILES["upfile"];  
if($max_file_size < $file["size"])  
//检查文件大小  
{  
echo "文件太大!";  
exit;  
}  
if(!in_array($file["type"], $uptypes))  
//检查文件类型  
{  
echo "文件类型不符!".$file["type"];  
exit;  
}  
if(!file_exists($destination_folder))  
{  
mkdir($destination_folder);  //上传到的位置
}  
$filename=$file["tmp_name"];  
$image_size = getimagesize($filename);  
$pinfo=pathinfo($file["name"]);  
$ftype=$pinfo['extension'];  
$destination = $destination_folder.time().".".$ftype;  
if (file_exists($destination) && $overwrite != true)  
{  
echo "同名文件已经存在了";  
exit;  
}  
if(!move_uploaded_file ($filename, $destination))  
{  
echo "移动文件出错";  
exit;  
}  
$pinfo=pathinfo($destination);  //文件名
$fname=$pinfo['basename']; 
$line='<img onclick="imgbig(this)"src="'.$destination_folder.$fname.'"  style="width:100px;" />';
$query='INSERT INTO '.$dbss['prfx']."_lines VALUES(NULL,$uid,'$uname',$timestamp,'$line','$shopid','$heading','',0)";
neutral_query($query);
//print_r($line);exit;
//echo " <font color=red>上传中....</font><br>";  
// echo " 宽度:".$image_size[0];  
// echo " 长度:".$image_size[1];  
// echo "<br> 大小:".$file["size"]." bytes";  
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180125.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP100上的图片上传程序
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php /****************
Yiiven
2022/12/15
1.5K0
记一次某开源OA白名单后缀限制下巧用系统设计getshell
如 d=systam&m=admin|admin&a=login 相当于调用 webmain/system/admin/adminAction.php#login
亿人安全
2025/02/26
1440
记一次某开源OA白名单后缀限制下巧用系统设计getshell
通达OA代码审计篇 - 11.7 有条件的任意命令执行
这是一个由有条件的任意用户登录+低权限文件上传+低权限目录穿越+低权限文件包含组成。可能是盯着国内OA的人太多了,这个漏洞在2020年9月28号的11.8版本中被更新修复,比较可惜的是,一次更新修复了全部的漏洞逻辑,不禁令人惊叹。
LoRexxar
2023/02/21
8660
通达OA代码审计篇 - 11.7 有条件的任意命令执行
Hack the box-Network
大家好,今天给大家带来的CTF挑战靶机是来自hackthebox的“Network”,hackthebox是一个非常不错的在线实验平台,能帮助你提升渗透测试技能和黑盒测试技能,平台上有很多靶机,从易到难,各个级别的靶机都有。
Khan安全团队
2020/03/08
7330
Hack the box-Network
PHP上传文件超过文件最大限制导致无法上传成功
     最近在学习《HeadFirst PHP & MySQL》一书的第5章“使用存储在文件中的数据”,做一个文件上传的应用时,出现了错误,就是文件无法成功上传。这个问题困扰了我很久,不过还好最后终于解决了。原因是我上传的图片文件大小超过了HTML 表单中MAX_FILE_SIZE 选项指定的值32768Bytes即32KB导致无法上传成功。
ccf19881030
2019/04/24
1.9K0
PHP上传文件超过文件最大限制导致无法上传成功
PHP全栈学习笔记32
php自定义函数之匿名函数 所谓匿名,就是没有名字。 匿名函数,也就是没有函数名的函数。
达达前端
2019/07/03
9590
PHP全栈学习笔记32
通过DedeCMS学习php代码审计
织梦(DedeCms)也是一个国产内容管理系统,曾经爆出过众多漏洞,甚至还有人开发了dedecms漏洞一键扫描器
FB客服
2021/08/24
21.9K0
dvwa通关攻略_猫里奥通关攻略
DVWA是一款基于PHP和mysql开发的web靶场练习平台,集成了常见的web漏洞如sql注入,xss,密码激活成功教程等常见漏洞。本教程将以DVWA为例,演示常见的web漏洞的利用和攻击。
全栈程序员站长
2022/09/27
1.5K0
dvwa通关攻略_猫里奥通关攻略
PHP 常见漏洞代码总结
只验证MIME类型: 代码中验证了上传的MIME类型,绕过方式使用Burp抓包,将上传的一句话小马*.php中的Content-Type:application/php,修改成Content-Type: image/png然后上传.
王瑞MVP
2022/12/28
1.3K0
信息安全国赛技能赛 Writeup
周末在北京wooyun峰会的旅途上打了一场大学生信息安全的国赛的技能赛,本以为能进的决赛,却因为人手不够再加上个人水平太差错过了,虽然i春秋的平台一股浓浓的国产页游风,但不得不说,题目的质量确实不算差,稍微整理下wp…
LoRexxar
2023/02/21
4810
通达OAの漏洞合集
两三个月之前实习的时候通达OA的漏洞学习笔记,赶紧发了清一下库存,免得文件夹吃灰。
h0cksr
2023/05/18
5.7K0
在线涂改图片 php,php网站怎么修改图片[通俗易懂]
$db = mysql_connect(‘localhost’,’root’,’Ctrip07185419′) or die(‘can not connect to database’);
全栈程序员站长
2022/10/04
4.7K0
在线涂改图片 php,php网站怎么修改图片[通俗易懂]
NJCTF Web部分writeup
又到了一年一度的比赛季,这次打了打赛宁自己办的NJCTF,这里稍微整理下Web部分的wp,虽然不知道题目是谁出的,但是我觉得大部分题目还是挺蠢的…看的人从中汲取自己想要的知识就好。
LoRexxar
2023/02/21
3090
NJCTF Web部分writeup
VulnHub靶场 PwnLab: init 渗透测试思路
是个白名单验证只能上传图片马,然后使用index.php的文件包含漏洞getshell,这里需要登陆才能上传文件
曈曈too
2024/08/24
1281
VulnHub靶场 PwnLab: init 渗透测试思路
利用OpenAI CLIP、Claude Sonnet 3.5和pgvector构建一个AI图库
本文探讨了使用 OpenAI CLIP、Claude Sonnet 3.5 和 pgvector 构建 AI 驱动的图片库的 RAG 应用挑战。
云云众生s
2024/10/01
1450
利用OpenAI CLIP、Claude Sonnet 3.5和pgvector构建一个AI图库
一句话木马(新)[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说一句话木马(新)[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/02/10
2.6K0
一句话木马(新)[通俗易懂]
2024全网最全面及最新且最为详细的网络安全技巧 十之CMS文件上传漏洞典例分析POC;EXP以及 如何防御和修复[含PHP;Pyhton,C源码和CTF精题及WP详解]
非常明显,采用的是黑名单验证,虽然我们可以采用类似这样的文件后缀绕过程序的检测,如:bypass.phpX(这里的X代表空格%20或其他特殊字符{%80-%99}),但这并是今天我想要讲的内容。
盛透侧视攻城狮
2024/10/21
950
2024全网最全面及最新且最为详细的网络安全技巧 十之CMS文件上传漏洞典例分析POC;EXP以及 如何防御和修复[含PHP;Pyhton,C源码和CTF精题及WP详解]
2024全网最全面及最新且最为详细的网络安全技巧 九之文件包含漏洞典例分析POC;EXP以及 如何防御和修复[含PHP;Pyhton,C源码和CTF精题及WP详解](4)
这里我们可以介绍第一个trick,即利用phpinfo会打印上传缓存文件路径的特性,进行缓存文件包含达到getshell的目的。
盛透侧视攻城狮
2024/10/21
1890
2024全网最全面及最新且最为详细的网络安全技巧 九之文件包含漏洞典例分析POC;EXP以及 如何防御和修复[含PHP;Pyhton,C源码和CTF精题及WP详解](4)
Bugku Web 部分WP
1.web2 听说聪明的人都能找到答案 http://123.206.87.240:8002/web2/ CTRL + u 查看源代码 2.计算器 http://12
wywwzjj
2023/05/09
5890
小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/150010.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
2.3K0
推荐阅读
相关推荐
PHP100上的图片上传程序
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验