-
2020-03-16 10:34:21
如果是自己写的input file 类型的表单,在ios 中 不能直接在内存中生成这个表单,在内存中直接生成的input 表单 ios 不能直接触发input的change事件,所以是没有效果的。
解决:
const input = dcoumnet.createElement("input") // 在内存中创建一个input的元素 input.type = "file" // 将类型设置为文件类型的表单 input.hidden = "hidden" // 将表单进行隐藏 document.body.append(input) // 这个是关键的一步 如果没有这一步 在ios 中这个表单就不能直接触发change 事件,但是在android还有pc端是可以正常触发, input.click() // 在内存中点击一下 弹出选中文件的窗口 input.addEvenetListener("change",function() { // 通过change 事件监听表单是否有变化 let file = this.files[0] // 通过files[0]就能获取我们所传递的文件 })
注意 :单词不知到有没有打错,但是逻辑没有问题 。
更多相关内容 -
微信公众号获取用户地理位置并列出附近的门店的示例代码
2021-01-19 19:34:50思路分析: 1、在微信公众号内获取用户地理位置 需要js-sdk签名包(关于如何获取文档有介绍) ...通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直 -
自动保存Outlook邮件的附件(利用VBA)
2016-03-28 15:52:08自动保存Outlook邮件的附件(利用VBA).docx -
【python办公自动化(21)】利用python的imbox库批量获取邮件中的附件并保存本地
2020-02-07 20:17:13在进行一次培训后,需要收到学员提交的邮件信息,但是由于人员较多,而且每次点开文件保存到当地步骤较为繁琐,人为操作浪费时间还存在着操作失误的可能性,这样就产生进行批量的邮件附件的提取并保存在本地的需求...场景假设:
在进行一次培训后,需要收到学员提交的邮件信息,但是由于人员较多,而且每次点开文件保存到当地步骤较为繁琐,人为操作浪费时间还存在着操作失误的可能性,这样就产生进行批量的邮件附件的提取并保存在本地的需求(比如教师、公职人员等)
注意:
1)需要【python办公自动化(19)】和【python办公自动化(20)】的基础
2)以及文件处理相应的基础知识
3)因为读取文件需要联网,所以要保证网络的稳定性
测试前准备好材料
首先准备好不同的文件格式:图片、文档、代码、网页、表格等
第一次发送的内容有:
第二次发送的内容有:
文件的类型关于视频类的也可以放入,但是考虑到视频文件比较大,上传比较慢,就没有加入;发送邮件的操作,进行了两次,防止一次的偶然性(模拟现实中多人发送邮件的情景),下面就开始正式的进行代码操作
代码实现过程
步骤一、前期准备
-
certbot:Certbot是EFF的工具,用于从Let's Encrypt获取证书,并(可选)在服务器上自动启用HTTPS。...
2021-05-12 16:12:47Certbot是一个易于使用的客户端,可以从Let's Encrypt(由EFF,Mozilla和其他公司发起的开放式证书颁发机构)中获取证书,并将其部署到Web服务器。 任何在设置安全网站上遇到麻烦的人都知道获得和维护证书很麻烦。... -
获取附件连接的函数:wp_get_attachment_image_src
2022-04-24 14:10:06此函数用来获取一个图片的路径函数,此函数返回的是一个包含图片路径,宽度和高度的有序数组。此函数用来获取一个图片的路径函数,此函数返回的是一个包含图片路径,宽度和高度的有序数组。
语法结构
wp_get_attachment_image_src( $attachment_id, $size, $icon ); Array ( [0] => url //图片地址 [1] => width //图片宽度 [2] => height //图片高度 [3] => boolean //true表示返回了缩放后的图片,false表示返回了原始图片 )
参数
$attachment_id – 数值,必需,想要获取信息的附件ID,默认值:None
$size – 字符串,获取指定尺寸的图像,默认值:None,可选thumbnail, medium, large or full(对应后台——设置——多媒体的图像大小 ,full表示原始尺寸),或通过array(300,240)自定义图片大小。需要注意的是
WordPress 2.5 以前的版本是没有 $size 参数的,只显示原始尺寸。i c o n – 布 尔 , 可 选 , 是 否 使 用 媒 体 图 标 来 表 示 当 前 附 件 , 比 如 : 如 果 要 获 取 的 附 件 不 是 一 张 图 片 , 而 是 , 比 如 说 视 频 , 让 icon – 布尔,可选,是否使用媒体图标来表示当前附件,比如:如果要获取的附件不是一张图片,而是,比如说视频,让 icon–布尔,可选,是否使用媒体图标来表示当前附件,比如:如果要获取的附件不是一张图片,而是,比如说视频,让icon为真可以返回代表视频(mime type:video)的图标,否则只能返回空值。这些代表不同mime
type的图片在wp-includes/images/crystal目录下使用方法
get_post_thumbnail_id($post->ID);获取文章缩略图ID if (has_post_thumbnail()){ $array_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array(255,204)); echo $array_image_url[0]; }
官方示例
$attachment_id = 8; // 附件ID $image_attributes = wp_get_attachment_image_src( $attachment_id ); // 返回一个数组 if( $image_attributes ) { echo '<img src="'.$image_attributes[0].'" width="'.$image_attributes[1].'" height="'.$image_attributes[2].'" />'; }
欢迎关注我的公众号“xx主题网”,原创技术文章第一时间推送。
文章来源:https://www.xxzhuti.com/855.html
-
C#使用 MailKit获取邮件中的附件(QQ邮箱/163网易邮箱)
2018-03-26 10:42:03因为头担心QQ强制改掉授权码,要求换一个,我选了网易,这两个都支持最大50M的,还有新浪什么的,但没注册就没用 关于授权码: 网易:授权码是你自己设定的,方便记忆 最多16位 QQ:授权码给你分配的,12位,但明确...背景介绍:VS2017 | .net core | C# | .netframwork 4.0
-----------------------------------------------------------------------
这东西本来没打算记的,主要是连接邮件服务器的时候百度搜出来的大多博客不能用,浪费1小时,所以来记一下,主要看的是这个参考博客,我在此基础上做了改动
实现功能如下:
1. 通过授权码连接到邮箱服务器,并获取到某文件夹下的邮件,以上出错添加了能看到是哪块的问题(对使用的邮箱需要你开启STMP服务,设置规则以确保符合的邮件移动到此文件夹下)
2. 不打开邮件,只根据主题进行筛选,同主题邮件取日期最新的那个(通过linq筛选实现)
3. 直接下载邮件中所有的普通附件(大于50M的是超大附件,只有链接,且无法通过代码下载(反正我不行,你行你试试))
4. 下载完成删除同类旧压缩包
因为头担心QQ强制改掉授权码,要求换一个,我选了网易,这两个都支持最大50M的,还有新浪什么的,但没注册就没用
关于授权码:
网易:授权码是你自己设定的,方便记忆 最多16位
QQ:授权码给你分配的,12位,但明确说了可以有很多个不用记,但只要你改QQ密码或什么中心密码,之前的全部失效
但连获取邮箱文件夹内容这里,QQ网易不一样啊,网易真的坑,你愣愣的上来会获不到“故意设置障碍,其实是网易需要我们表明我们登录的客户端身份,具体的原理和命令参照我上一篇文章查看IMAP ID COMMAND命令,下面只具体说说mailkit如何使用到这条命令,其实mailkit是提供这个命令的,足见mailkit的强大” ---参考这个博客,
一,nuget包,搜MailKit 找到适合你的版本,下载
-----------------------------------------------------------------------
二. 代码内容(QQ的)
string account = "198416****@qq.com"; string passWord = "jsknsh**********";//获得的授权码 m_logger.LogInformation("开始到邮箱查询更新包"); //准备工作结束 ImapClient client = new ImapClient(); #region 连接到邮件服务器 try { //一、创建获取邮件客户端并连接到邮件服务器。 //带端口号和协议的连接方式 client.Connect("imap.qq.com", 993, true); } catch (ImapCommandException ex) { m_logger.LogInformation($"---------尝试连接时出错:{0}------------" + ex.Message); } catch (ImapProtocolException ex) { m_logger.LogInformation($"---------尝试连接时的协议错误:{0}------------" + ex.Message); } catch (Exception ex) { m_logger.LogInformation($"---------服务器连接错误:{0}------------" + ex.Message); } try { // 二、验证登录信息,输入账号和密码登录。 client.Authenticate(account, passWord); } catch (AuthenticationException ex) { m_logger.LogInformation($"---------无效的用户名或密码:{0}------------" + ex.Message); } catch (ImapCommandException ex) { m_logger.LogInformation($"---------尝试验证错误:{0}------------" + ex.Message); } catch (ImapProtocolException ex) { m_logger.LogInformation($"---------尝试验证时的协议错误:{0}------------" + ex.Message); } catch (Exception ex) { m_logger.LogInformation($"---------账户认证错误:{0}------------" + ex.Message); } #endregion // 三、获取邮箱文件夹。这次用到的的收件箱文件夹叫YiBaoRDZ。 //获取所有的文件夹 //List<IMailFolder> mailFolderList = client.GetFolders(client.PersonalNamespaces[0]).ToList(); //只获取收件箱文件夹 var folder = client.GetFolder("其他文件夹/YiBaoRDZ"); //四、从文件夹获取文件 //打开文件夹并设置为读的方式 folder.Open(MailKit.FolderAccess.ReadOnly); //获取大于2018-3-26时间的所有邮件的唯一Id var uidss = folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2018-3-26"))); //获取邮件头 var MailHeaders = folder.Fetch(uidss, MessageSummaryItems.UniqueId | MessageSummaryItems.Full); //同主题邮件取日期最新 var NeedMailIds = from a in MailHeaders group a by a.NormalizedSubject into grp let maxTime = grp.Max(a => a.Date.DateTime) from row in grp where row.Date.DateTime == maxTime select row.UniqueId; if (NeedMailIds!=null) { //获取邮件信息 foreach (var item in NeedMailIds) { MimeMessage message = folder.GetMessage(item); //提取该邮件所有普通附件 foreach (MimePart attachment in message.Attachments) { //下载附件 using (var cancel = new System.Threading.CancellationTokenSource()) { string filePath = Path.Combine(outDirPath, attachment.FileName); using (var stream = File.Create(filePath)) { attachment.ContentObject.DecodeTo(stream, cancel.Token); } } /从这里开始是我自己写的内容,和本次博客无关// // 散列值是否正确 string strHash; string strLocalTmpFullPath = Path.Combine(direcotryDownload.FullName, attachment.FileName); using (FileStream fs = new FileStream(strLocalTmpFullPath, FileMode.Open, FileAccess.Read)) { strHash = Crypto.GetSHA1String(fs); } if (strHash != singleInfo.HashString) { m_logger.LogError("文件散列值不匹配\n远程散列值:" + singleInfo.HashString + "\n本地计算散列值:" + strHash); continue; } //删除同类旧版更新包 DirectoryInfo dyInfo = new DirectoryInfo(outDirPath); //获取文件夹下所有的文件 foreach (FileInfo feInfo in dyInfo.GetFiles()) { //判断同名文件日期是否小于今天,是则删除 if (feInfo.CreationTime < DateTime.Today&& feInfo.Name.Contains(singleInfo.PackageName)) feInfo.Delete(); } } } } //关闭文件夹 folder.Close();
QQ官网帮助文档:QQ邮箱的POP3与SMTP服务器是什么 我用的SMTP,而SMTP需要身份验证,密码不再是邮箱的登陆密 码,而是授权码 如何拿到授权码
-----------------------------------------------------------------------
三. 代码内容(网易的)
//mailkit还提供查询是否支持命令的语句,如果你不知道邮箱是否支持这个命令可以使用下面的函数来判断: private static bool HasImapCapabilitiesId(ImapCapabilities sourceFlag, ImapCapabilities targetFlag) { return ((sourceFlag | targetFlag) == sourceFlag); }
string account = "182379*****@163.com"; string passWord = "zltdkj******";//获得的授权码 m_logger.LogInformation("开始到邮箱查询更新包"); //Result result; List<PackageInfo> listPackages = m_managerPackages.GetAllExeInfos();//获取可更新程序信息(更新程序,主程序,校验引擎,四个数据库) List<DownloadedInfo> listDownloadeds = m_managerDownload.GetDownloadedPackageInfos();//获得本地所有压缩包文件信息 DirectoryInfo direcotryDownload = m_managerDownload.GetDownloadDirectory();//获得本地更新压缩包文件存放路径 if (null == direcotryDownload) { m_logger.LogError("获取本地包存放目录失败"); return; } #endregion //准备工作结束 ImapClient client = new ImapClient(); #region 连接到邮件服务器 try { //一、创建获取邮件客户端并连接到邮件服务器。 //带端口号和协议的连接方式 client.Connect("imap.163.com", 993, true); } catch (ImapCommandException ex) { m_logger.LogInformation($"---------尝试连接时出错:{0}------------" + ex.Message); } catch (ImapProtocolException ex) { m_logger.LogInformation($"---------尝试连接时的协议错误:{0}------------" + ex.Message); } catch (Exception ex) { m_logger.LogInformation($"---------服务器连接错误:{0}------------" + ex.Message); } try { // 二、验证登录信息,输入账号和密码登录。 client.Authenticate(account, passWord); } catch (AuthenticationException ex) { m_logger.LogInformation($"---------无效的用户名或密码:{0}------------" + ex.Message); } catch (ImapCommandException ex) { m_logger.LogInformation($"---------尝试验证错误:{0}------------" + ex.Message); } catch (ImapProtocolException ex) { m_logger.LogInformation($"---------尝试验证时的协议错误:{0}------------" + ex.Message); } catch (Exception ex) { m_logger.LogInformation($"---------账户认证错误:{0}------------" + ex.Message); } #endregion //这是网易故意设置障碍,其实是网易需要我们表明我们登录的客户端身份,具体的原理和命令参照我上一篇文章查看IMAP ID COMMAND命令,下面只具体说说mailkit如何使用到这条命令,其实mailkit是提供这个命令的,足见mailkit的强大 //判断是否 添加ID COMMOND命令 if (HasImapCapabilitiesId(client.Capabilities, ImapCapabilities.Id)) { var clientImplementation = new ImapImplementation { Name = "MeSince", Version = "2.0" }; var serverImplementation = client.Identify(clientImplementation); } // 三、获取邮箱文件夹。这次用到的的收件箱文件夹叫YBrdz。 //获取所有的文件夹 //List<IMailFolder> mailFolderList = client.GetFolders(client.PersonalNamespaces[0]).ToList(); List<IMailFolder> mailFolderList = client.GetFolders(client.PersonalNamespaces[0]).ToList(); IMailFolder InBoxFolder; if (mailFolderList != null) { InBoxFolder = mailFolderList.Find(o => o.FullName.ToUpper() == "YBRDZ"); //InBoxFolder.Open(MailKit.FolderAccess.ReadOnly); } //只获取收件箱文件夹 var folder = client.GetFolder("YBrdz"); //四、从文件夹获取文件 //打开文件夹并设置为读的方式 //folder.Open(MailKit.FolderAccess.ReadOnly); //已读写的方式打开文件夹 folder.Open(FolderAccess.ReadWrite); //获取大于2018-3-26时间的所有邮件的唯一Id var uidss = folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2018-3-26"))); //获取邮件头 var MailHeaders = folder.Fetch(uidss, MessageSummaryItems.UniqueId | MessageSummaryItems.Full); //同主题邮件取日期最新 var NeedMailIds = from a in MailHeaders group a by a.NormalizedSubject into grp let maxTime = grp.Max(a => a.Date.DateTime) from row in grp where row.Date.DateTime == maxTime select row.UniqueId; if (NeedMailIds!=null) { //获取邮件信息 foreach (var item in NeedMailIds) { MimeMessage message = folder.GetMessage(item); //提取该邮件所有普通附件 foreach (MimePart attachment in message.Attachments) { //由附件名称获得信息,进行比较 FileNameInfo singleInfo = FileNameInfo.Create(attachment.FileName); // 是否已经下载过相同或更高版本 if (listDownloadeds. Where(s => (s.Name == singleInfo.PackageName) && (s.Version >= singleInfo.Version)). Count() > 0) { continue; } //下载附件 using (var cancel = new System.Threading.CancellationTokenSource()) { string filePath = Path.Combine(outDirPath, attachment.FileName); using (var stream = File.Create(filePath)) { attachment.ContentObject.DecodeTo(stream, cancel.Token); m_logger.LogInformation("更新压缩包 " + attachment.FileName + " 已下载"); } }
/从这里开始是我自己写的内容,和本次博客无关//
这次参考的博客汇总:
-
wordpress获取文章状态函数:get_post_status()
2021-01-20 16:34:08如果文章的ID号为附件则返回该附件文章的状态。【用法】 【参数】 $ID (整数)(可选)文章ID若未提供$ID则该函数返回False。 默认值:”【返回的值】 (字符|布尔型) 返回文章的状态,出错时则返回False。 可能... -
homebridge-hyperion-light:Homebridge插件,可将Hyperion用作HomeKit附件
2021-02-03 14:14:27开启/关闭环境光(可选) 获取当前状态/颜色 安装 需要 npm install -g homebridge 使用这个插件 npm install -g homebridge-hyperion-light 将您的附件添加到config.json 配置样本: "accessories": [{ ... -
jmxpromo:具有基于领事的发现和运行时附件的Prometheus JMX导出器
2021-05-15 22:08:07配置文件是可选的 更加灵活的代理配置(任何键值都可以定义为代理参数) 代理可以连接到正在运行的JVM实例 领事支持(http端口已注册到领事) 它也可以作为独立的HTTP服务器运行,并刮擦远程JMX目标。 跑步 要... -
JQuery获取控件值
2018-08-10 10:21:16将多选框设为全选中状态,false为不选中状态 不勾选:$("#checkbox_id").attr("checked",'');$("input['tupe=checkbox']").removeAttr("checked"); 判断是否勾选:if($("#checkbox_id").attr("checked")==... -
Python中,用于获取用户输入的命令为:
2020-12-08 21:26:21【多选题】以下关于机器学习说法正确的是?【判断题】Python内置函数sum____用来返回数值型序列中所有元素之和。【单选题】关于自定义函数的下列说法不正确的是:【判断题】Python内置函数len____可以返回列表、元组、... -
C# 请求接口RestfulAPI,Get请求,Post请求,上传附件及带参数
2020-09-15 17:50:44} /// <summary> /// Http请求,上传附件并带参数 /// </summary> /// 请求地址</param> /// 参数,key:参数名,value:参数值</param> /// 附件,key:附件参数名,value:附件物理地址(不可为远程地址)</param> //... -
邮件发送超大附件有哪些问题?怎么解决?
2018-12-04 13:55:03又一次,写好邮件上传附件时,被通知文件太大无法上传; 邮件发送出去的会议资料,永远不知道谁没有查看,还要电话通知一遍 …… 工作中,你肯定遇到过上述类似的情况。文件太大、传输缓慢、无法跟踪文件状态,再... -
Lotus Notes 数据库中附件的批量导出
2019-03-18 13:31:20这些附件常常是工作的重要资料,用户时常需要导出这些附件到其他系统中进行处理,如图 1 所示,用户可以将所选中的附件或者该文档中的所有附件保存到本地系统。有时用户还需要导出多个文档中的附件,如图 2 所示,每... -
weiboSpider:新浪微博爬虫,用python爬取新浪微博数据
2021-05-11 14:33:26本程序需设置cookie来获取微博访问权限,后面会讲解。如果不想设置cookie,可以使用,二者功能类似。 爬取结果可写入文件和数据库,具体的写入文件类型如下: txt文件(默认) csv文件(默认) json文件(可选) ... -
DTCloud里面的附件预览
2022-04-08 10:26:02dtcloud里面的附件预览支持的有两种 1、支持图片预览 图片预览:host+model+id+field名字 http://127.0.0.1:8088/web/image?model=hr.employee&id=20&field=avatar_128 效果图 : 2、支持pdf预览 链接:/... -
获取参数控件的显示值
2019-03-23 08:32:26一直被问到单元格怎么获取到参数控件的显示值,之前一直说的是先获取到实际值再通过公式神马的转换下,现在介绍个方法,不喜勿喷~不传附件了,大家有疑问可回帖 1.现有参数p1,下拉复选框控件(举例),实际值和... -
微信公众号获取用户地理位置并列出附近的门店
2017-06-08 09:24:09一、开始开发 1、该功能的实现需要调用微信公众号的js-sdk接口实现 简介: ... 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信 -
python进行邮件文件.eml.pst.msg信息提取(包括附件)
2020-04-10 11:36:41True,True) #decode_email_b方法 #第一个参数是eml文件二进制读出来的内容 #第二个参数表示邮件解析返回的数据结构里是否包含邮件的原始内容,也就是html内容,我这里选True,这样内容可以直接放到网页中显示。... -
通过Python将不同的附件发给不同的收件人
2018-10-23 14:56:49通过Python将不同的附件发给不同的收件人 附件有3个: mycontacts.txt(放收件人邮箱和地址,格式为张三 python123@qq.com) mybase.txt(放附件列表,格式为张三 1.txt,2.txt,3.txt) message.txt(放正文内容... -
复选框点击事件JQuery
2019-04-24 23:02:17复选框点击事件JQuery 今天在做一个复选框事件,就是点击一个复选框按钮发生相应的事件的功能时,遇到了一个问题,就是点击之后没有发生预期想要发生的事件,一开始以为是没有监听到,但是检查了好多遍,也确实监听... -
springboot+vue实现文件上传下载
2021-01-18 17:04:45实现思路:通过h5 :input元素标签进行选择文件,获取所选选择的文件路径,new fromdata对象,设置fromdata的参数,设置axios对应的请求头,最后通过axios发送post请求后端服务。后端服务同过MultipartFile进行文件... -
element中文件上传
2020-12-19 12:54:17ui' // 引入element import 'element-ui/lib/theme-chalk/index.css' // 引入css样式 Vue.use(ElementUI) // 中间件全局注册 组件常用参数 参数 说明 类型 可选值 默认值 action 必选参数,上传的地址 string - - ... -
lua-cjson:Lua CJSON是Lua的快速JSON编码解析模块
2021-05-12 10:49:39可选运行时支持JSON规范的常见异常(无穷大,NaN等) 不依赖其他库 注意事项 不支持UTF-16和UTF-32 MIT许可证涵盖Lua CJSON。 查看文件LICENSE以获取详细信息。 请阅读manual.adoc获取安装说明和API手册。 该... -
android_userList:会议室+数据绑定+ kotlin + mvvm
2021-05-11 14:08:52通过这个可以获取其他组建生命周期变化 这里注释使用kapt,选着相应的注释依赖 def lifecycle_version = "2.2.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" //... -
【量化】通过Fama-French三因子模型选股,收益能达到多少?
2022-01-21 13:54:33数据来源 数据源来自—恒有数【 https://udata.hs.net/home】 统计从2018年至今的近三年总数据 由于数据量较大获取时间较久,本文已将提取数据上传附件,便于大家实践。 本文主要基于恒有数社区获取Fama-French三... -
graylog-docker:官方Graylog Docker映像
2021-04-29 15:14:40Graylog Docker映像 Graylog的最新稳定版本是4.0.6,该版本带有标签4.0或4.0.6-1 。 在您的生产环境中使用稳定的4.0版本。 请查看以获取完整的安装和配置说明。 什么是Graylog? Graylog是集中式日志记录... 另一种选 -
邮件附件批量下载小程序
2018-09-29 09:34:45第一,邮箱没有提供批量下载附件的功能(有批量下载部分附件功能,但是一是那样文件就散乱了,而是仍然需要点击多次),只能打开一份邮件,进去找到附件,然后点击下载附件,而且浏览器下载附件的速度...