动易 swCMS6.5 网站的上传文件管理器及判断文件是否失效的功能模块分析
动易 cms6.5 网站后台的上传文件管理模块由 6 个页面组成,现分别简介如下:
1 ) Admin_UploadFile.asp
频道上传文件后台管理页的框架页
上框架为 Admin_UploadFile_Top.asp
下框架分左和右
左为 Admin_UploadFile_Left.asp
右为 Admin_UploadFile_Main.asp
2 ) Admin_UploadFile_Top.asp
框架页的头部
用于获取框架页传递的参数 UploadDir ,即该频道上传文件的目录名
3 ) Admin_UploadFile_Left.asp
上传文件的树形目录结构,设计成资源管理器的风格
通过 FSO 的 Folder 对象来获取上传目录的子目录集合,代码如下:
Set FolderObj = fso.GetFolder(Server.MapPath(UpFilesPath)) ' 获取上传根目录的绝对路径
Set SubFolderObj = FolderObj.SubFolders ' 上传根目录的子文件夹集合
以下是我测试时使用的注释代码:(因为我对 FSO 的 Folder 对象印象不深)
'response.Write(FolderObj) ' 输出上传根目录的绝对路径
' 例如 : G:/ 动易 SiteWeaver6.5 版 /swcms/jiaoxuekeyan/UploadFiles_3443
'response.Write(TypeName(SubFolderObj)) ' 输出的值为 Folders
' 备注 : SubFolderObj 不是数组类型的值 , 而是 Folder 对象的集合 Folders
'response.Write(SubFolderObj.Count) ' 子文件夹的个数
获取得到的子文件夹集合后,执行一个循环
For Each FolderItem In SubFolderObj
‘完成此目录下子文件夹的输出显示
……
If UpLoadNumber = SubFolderObj.Count Then '若为 true, 则所有的子文件夹显示完毕
Response.Write (GetChildFolderList(UpFilesPath & FolderItem.name, "", True, ""))
Else '否则继续输出子文件夹
Response.Write (GetChildFolderList(UpFilesPath & FolderItem.name, "", False, ""))
End If
UpLoadNumber = UpLoadNumber + 1 '累积已显示的子文件夹个数
Next
因为要逐级地输出所有目录的子目录以构成目录树的形式,
所以这里编写了一个“递归函数”来实现逐级获取子目录并显示
Function GetChildFolderList(FolderID, Str, EndNodeTF, TempAllParentID)
…………
Set FolderObj = fso.GetFolder(Server.MapPath(FolderID))
Set SubFolderObj = FolderObj.SubFolders
For Each FolderItem In SubFolderObj
…………
GetChildFolderList = GetChildFolderList & GetChildFolderList(FolderID & "/" & FolderItem.name, ImageStr, TempEndNodeTF, AllParentID)
‘ 执行递归函数实现逐级显示子目录
ChildFolderNumber = ChildFolderNumber + 1
‘ 累积已显示的子文件夹的个数
Next
Set FolderObj = Nothing
Set SubFolderObj = Nothing
End Function
该递归函数的完整代码可查看文件 Admin_UploadFile_Left.asp
主要由 4 个 JS 函数完成该目录树的前台功能
ClickClassImg(ClickObj,ClassID) // 展开和折叠目录
ShowChildClass(ID) // 显示目录所包含的子目录列表
ChangeImg(Obj,OpenTF) // 更换目录的状态图片
HideChildClass(ID) // 隐藏目录所包含的子目录列表
另外,整个目录树的表格 中增加了一个自定义属性 RootDir
例如: id='RootDir' RootDir='/jiaoxuekeyan/UploadFiles_3443/' …… >
RootDir 为自定义属性 , 表示频道上传文件的根目录
每个上传目录所在的表格的行 中增加了三个自定义属性 AllParentID,ParentID,ClassID
例如: AllParentID=”/jiaoxuekeyan/UploadFiles_3443/ “
ParentID=”/jiaoxuekeyan/UploadFiles_3443/ “
ClassID=”/jiaoxuekeyan/UploadFiles_3443/200802” …… >
AllParentID 表示该目录的所有上级目录(若存在多个则用“ , ”分隔)
ParentID 表示父目录
ClassID 表示当前目录
这些 JS 函数通过 DOM 对象获取相关的属性值后执行实现上传文件“目录树”的前台功能。
点击目录树中的目录名后将链接到 Admin_UploadFile_Main.asp 文件中
同时将 ChannelID , UploadDir , CurrentDir 参数传递
若不为上传目录下的文件夹,还要传递 ParentDir 参数
4 ) Admin_UploadFile_Main.asp
上传文件管理模块的核心文件,则文件管理器的功能有:
<1> 以 详细信息方式 或 以缩略图方式 显示上传文件列表及子目录列表
相关的过程是:
GetUploadFileStyle() ‘ 获取 cookie 中保存的 ShowFileStyle 参数值 .
接着执行注释中的操作:
Select Case ModuleType ' 根据频道模块类型获取该频道的所有图片 , 用字符 "|" 来分隔
strFiles = LCase(strFiles) ' 获取该频道的所有上传文件
<2> 全选 / 取消全选上传的文件 / 预览缩略图 / 左栏树形目录的开关 / 排序
相关的 JS 函数为:
function CheckAll(form)
function unselectall()
function preloadImg(src)
function switchBar(obj)
function reSort(which) ‘ 传递用于排序的文件属性,可为:文件名 / 大小 / 类型 / 修改时间
<3> 通过传递的参数值调用相应的过程来实现文件管理器的如下功能(即:注释的文本),
以下所有的过程都定义在本文件中
Select Case Action ' 根据传递的参数执行相应操作
Case "Del"
Call DelFiles '删除文件
Case "DelThisFolder"
Call DelThisFolder '删除目录
Case "DelCurrentDir"
Call DelCurrentDir '删除当前目录
Case "DelAll"
Call DelAll '删除全部
Case "DoAddWatermark" ‘ 以下两个过程的执行需要安装 Jpeg 图象处理组件
Call DoAddWatermark '给图片增加水印
Case "DoAddWatermark_CurrentDir"
Call DoAddWatermark_CurrentDir '给当前目录下的图片增加水印
Case Else
Call main
‘ 过程 main() 初始化本页内容的显示
End Select
过程 Main() 的代码主要就是实现文件的排序功能 以及 选择上传文件的浏览方式
所用到的知识点包括:
FSO 的 File 对象的属性
动态数组的运用
根据排序字段值的类型选择合适的方法进行排序,
例如:对字符串值的大小比较用 StrComp ()函数
对上传文件的数组完成要求的排序,通过执行一个二层循环来完成排序,省略的代码如下:
'======= 排序开始 =======
For i = FileCount To 0 Step -1
minmax = theFiles(0)(sortBy)
minmaxSlot = 0
For j = 1 To i
………………
Next
If minmaxSlot <> i Then
temp = theFiles(minmaxSlot)
theFiles(minmaxSlot) = theFiles(i)
theFiles(i) = temp
'排序完成后将序号作为元素的序号
End If
Next
'======= 排序结束 =======
有兴趣的朋友可以找到完整的代码来阅读。
<4> 最后根据 cookie 中保存的 ShowFileStyle 参数值来选择上传文件的显示方式:
If ShowFileStyle = 1 Then
Call ShowFileDetail '以缩略图方式显示文件的过程
Else
Call ShowFileThumb '以详细信息方式显示文件的过程
End If
下面将对以上提到的两过程 ShowFileDetail() 和 ShowFileThumb() 的部分代码进行分析 :
过程一: ShowFileDetail() 以详细信息方式显示 ,
其包含两个过程分别用于文件夹列表的显示和文件列表的显示 : :
Call ShowFileDetail_fol '输出当前目录下的文件夹列表
Call ShowFileDetail_Fil '输出当前目录下的文件列表
该过程还调用预览图片缩略图时显示提示信息的函数:
Function GetFileContent(ByVal sPath, sType)
缩略图的显示则由 JS 函数 function ShowADPreview(ADContent) 来实现
显示缩略图的浮动的 标签的显示和定位由 ShowJS_Tooltip 过程中的 js 代码来实现
若服务器安装了 Jpeg 图片处理组件 , 则输出如下内容 ; 若未安装 , 则不显示以下内容
If IsObjInstalled("Persits.Jpeg") = True Then
Response.Write " 给选中的图片添加水印' > value='给当前目录添加图片水印 ' >"
End If
过程二: ShowFileThumb() 以缩略图方式显示
该过程仅调用了本页中定义的分页函数 showpage2(strFileName, totalPut, MaxPerPage)
其代码按执行的顺序编写,条理清晰,顺着代码阅读即可。
重点提一下这句实现缩略图换行的代码。这里是 4 个 / 行
If FileNum Mod 4 = 0 Then Response.Write ""
'=========每行显示 4 个图片文件 , 满 4 个则换行 ==========
两过程删除文件夹及文件,全选和取消全选等操作所调用的过程和函数都是相同的。
这些过程和函数也都定义在本文件 Admin_UploadFile_Main.asp 中,
想具体了解的朋友可找来阅读。
5 ) Admin_UploadFile_Clear.asp
该文件的作用就是清理该频道无用的上传文件,
“判断文件是否失效”的核心代码就包含在该文件中。
该核心代码设计思路分析如下:
首先获取该频道的所有上传文件以及文章内容中所包含的所有 图片标签,
以文章频道来举例:
sql = "select UploadFiles,Intro from PE_Article where ChannelID=" & ChannelID
strFiles = strFiles & "|" & rs(0) ' 获取所有文章的上传文件 , 用 "|" 分隔
ItemIntro = ItemIntro & "|" & rs(1) ' 获取所有文章的内容 , 用 "|" 分隔
使用正则表达式选择出文章内容中所有的 标签
regEx.Pattern = " ]>" ' 查询内容中所有
Set Matches = regEx.Execute(ItemIntro)
将内容中所有的 标签累计起来:
tempStr = tempStr & "|" & Match.value ' 累计数组
再次通过正则表达式获取 src= 图片的链接
regEx.Pattern = "src/s*=/s*.+?/.(" & UpFileType & ")" ' 查询 src = 内的链接
再次通过正则表达式替换 ”src=” 字符
regEx.Pattern = "src/s*=/s*" ' 过滤 src =
tempStr = regEx.Replace(tempStr, "")
最后得到所有的上传文件和文件内容中的所有使用的图片文件名
strFiles = strFiles & tempStr
得到所有使用的图片文件名后,接下来就通过执行两个循环来判断上传目录
和上传目录下的子目录中的文件是否包含在数据库存储的上传文件名中,
即是否包含在变量 strFiles 的值中。
若在,则该文件有效;若不在则该文件无效,则被删除。
循环一:
For Each theFile In theFolder.Files ‘ 循环判断上传根目录下的所有文件
If InStr(strFiles, LCase(theFile.name)) <= 0 Then
theFile.Delete True
'若该上传目录下的文件不包含在数据库存储的上传文件名中,则被删除
i = i + 1 '累计被删除的文件个数
End If
Next
循环二:
For Each theSubFolder In theFolder.SubFolders ‘ 上传根目录下的所有子文件夹
For Each theFile In theSubFolder.Files ‘循环判断子文件夹下的所有文件
If InStr(strFiles, LCase(theSubFolder.name & "/" & theFile.name)) <= 0 Then
theFile.Delete True
'若该上传目录下的子文件夹中的文件不包含在数据库存储的上传文件名中,则被删除
i = i + 1 '接着“循环一”继续累计被删除的文件个数
End If
Next
Next
经过实验发现,
确实只能删除上传根目录下的无效文件和上传目录根目录下的子文件夹中的无效文件。
再深层次的目录则无法判断。
其实这也足够了,比如我在测试时
频道“科研天地”的上传根目录为 UploadFiles_3443
这是网站给我的自定义频道“科研天地”建立的上传文件根目录
当有文件上传时,会在 UploadFiles_3443 下再建立子文件夹 200802
子文件夹之所以取名为 200802 是因为存放的是 2008 年 2 月上传的图片文件
6 ) Admin_UploadFile_Style.asp
由于本文件的唯一作用就是通过回传上传文件显示方式的参数 ,
实现 Admin_UploadFile_Main.asp 中的上传文件
是以“ 详细信息方式 ”还是以“缩略图方式”来显示
将 http:/Admin_UploadFile_Style.asp?ShowFileStyle=1
传递的 ShowFileStyle 参数的值 1 保存到 cookies 中,代码为:
Response.cookies("ShowFileStyle") = ShowFileStyle ' 将上传文件的显示样式保存到 cookies 中
然后返回到刚才跳转到本页的源地址去,代码为:
Response.Redirect request.servervariables("http_referer") ' 从哪里链接到该文件的就回哪里去
即本文件起到一个“中转站”的作用。
其核心知识点就是 request.servervariables("HTTP_REFERER") 的应用
下面是我转的关于 request.servervariables("HTTP_REFERER") 的一帖子
以此来补充介绍一下 request.servervariables("HTTP_REFERER") 的用途:
其返回的是调用这个 asp 页面的是那个页面,
即看这个页面是被哪个页面所调用的,
这么跟你说吧:
有 a.asp 和 b.asp 两个页面,
在 a.asp 中点击链接到 b.asp ,
或是 a.asp 中用表单提交数据到 b.asp ,
或是用脚本跳转到 b.asp,
那么在 b.asp 中用 request.servervariables("HTTP_REFERER") 方法
取得的字符串就是 a.asp 的 URL 路径。
注意:该 URL 路径包括 a.asp 后传递的参数
若是由 a.asp?action=add 链接到 b.asp
则 b.asp 中调用 request.servervariables("HTTP_REFERER")
取得的字符串就是 a.asp?action=add
总结:
“上传文件管理器” 的核心知识点其实也就是 FSO 的应用
我转贴的一篇关于 FSO 的文章《 ASP中 FSO功能详细介绍 》 即可以作为学习也可以作为复习来阅读,
文章中包含的 FSO 的几个常用实例建议初次学习的朋友们实际操练以下其代码,
对理解和增加印象会很有帮助:
文章 《 ASP中 FSO功能详细介绍 》的链接: http://blog.csdn.net/kof98cs/archive/2008/03/09/2159320.aspx
“判断文件是否失效”
核心代码都包含在 Admin_UploadFile_Clear.asp 中,
通过阅读我们发现从数据库获取所有使用的上传文件信息后,
就是通过一系列的正则表达式对上面获取的信息进行筛选和替换的操作,
从而简化信息里多余的内容。
最后以上传文件是否包含在数据库信息中作为判断的条件来决定该上传文件是否有效
所以,“判断文件是否失效”的核心知识点还是对正则表达式的应用。
在动易网站中正则表达式的应用是比较多的,由此看出它在网站技术中的重要地位。
这里列出一篇文章《 正则表达式的常用方法和属性以及应用举例 》
http://blog.csdn.net/kof98cs/archive/2008/01/24/2063700.aspx
以便对正则表达式进行学习和复习
这篇文章我花一个星期左右的时间才写完,
主要是对该模块所用到的某些知识点和函数不熟,也因为懒所以知难而退
由于自己文笔不佳也写得语无伦次,
但通过自己在阅读时在模块文件中添加的注释可以很方便地查找某些细节代码。
所以想具体深入透彻了解此功能模块的朋友一定要亲自阅读以上几个模块文件的代码
不懂到知识点可以查找有关 ASP 和 VBSscript 的手册来学习,
尤其提高对 FSO 和正则表达式的运用能力。
你可能感兴趣的:(ASP)
2018-09-27 aop相关
蒋超_58dc
1.静态织入,需要使用aspectj专用的compilermaven工程可以采用:https://www.mojohaus.org/aspectj-maven-plugin/2.动态织入,配合spring,创建代理来执行3.
Python数据可视化:用代码绘制数据背后的故事
AAEllisonPang
Python 信息可视化 python 开发语言
引言:当数据会说话在数据爆炸的时代,可视化是解锁数据价值的金钥匙。Python凭借其丰富的可视化生态库,已成为数据科学家的首选工具。本文将带您从基础到高级,探索如何用Python将冰冷数字转化为引人入胜的视觉叙事。一、基础篇:二维可视化的艺术表达1.1Matplotlib:可视化领域的瑞士军刀importmatplotlib.pyplotaspltimportnumpyasnpx=np.linsp
【免费下载】 Aspose for Java:解锁无水印、无限制的文档处理能力
房征劲Kendall
AsposeforJava:解锁无水印、无限制的文档处理能力【下载地址】AsposeforJava-去除水印和数量限制AsposeforJava-去除水印和数量限制Aspose是一个著名的文档处理库,专为Java应用程序设计,支持多种文档格式的操作,如Word、Excel、PDF等项目地址:https://gitcode.com/open-source-toolkit/56c82项目介绍在现代企业
探索高效文档转换新路径:Aspose.Words v18.7助力Word无缝变PDF
邴卉露Robust
探索高效文档转换新路径:Aspose.Wordsv18.7助力Word无缝变PDF【下载地址】Aspose.Wordsv18.7C示例源码Word转PDF无需安装Office本仓库提供了一个使用Aspose.Wordsv18.7将Word文档转换为PDF文档的C#示例源码。Aspose.Words是一个强大的.NET控件,允许开发者在不安装MicrosoftOffice的情况下读写Word文档,并
Collecting Numbers II
YouQian772
数学 排序 算法
题目描述Youaregivenanarraythatcontainseachnumberbetween1...nexactlyonce.Yourtaskistocollectthenumbersfrom1toninincreasingorder.Oneachround,yougothroughthearrayfromlefttorightandcollectasmanynumbersaspossi
streamline 这是个组合词,能猜出大概意思,组织
董八七
title:streamlinedate:2018-08-2117:03:19NO_sents:76NO_references:58streamlinestreamlinedstreamlines组织一些流程(process)AlthoughfixedguidelineswouldsimplifyGWASPAsubstantiallybyprovidinganalytictoolsthatstre
能分析从服务器收到的消息,Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息...
我引起此原因的功能如下:在aspx页面添加按钮JS方法:functiondownPPT(){$("#Btn_DownPPT").click();}…………OnClick="Btn_DownPPT_Click"/>……………………aspx.cs方法protectedvoidBtn_DownPPT_Click(objectsender,EventArgse){…………Response.WriteFil
LangChain specific default response
营赢盈英
AI langchain python openai api
题意:LangChain特定的默认响应问题背景:usingLangChainandOpenAI,howcanIhavethemodelreturnaspecificdefaultresponse?forinstance,let'ssayIhavethesestatement/responses使用LangChain和OpenAI时,如何让模型返回特定的默认响应?例如,假设我有如下的陈述/响应:St
Spring AOP
Jonariguez
Spring spring java 后端
OOP面向对象,允许开发者定义纵向的关系,但并不适用于定义横向的关系,会导致大量代码的重复,而不利于各个模块的重用。AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为切面(Aspect)。优点:AOP减少系统中的重复代码,降低了模块间的耦合度,提高系统的可维护性。可用于权限认证、日志、事务处
JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand
原文地址:JetBrains2025全家桶11合1含IDEA、PyCharm、DataGrip、WebStrom、GoLand、CLion、PhpStorm、DataSpell等JetBrains2025全家桶11合1包含:IDEA、WebStorm、DataSpell、DataGrip、Pycharm、RustRover、CLion、Rider、PhpStorm、RubyMine、GoLand。
Metaspace耗尽导致OOM问题
懒虫虫~
业务解决方案 java
一、问题背景生产检测到两台服务器内存仅剩50%,且CPU飙升到60%,产生告警。现网用户反映系统响应缓慢。二、定位问题1:通过主机名定位程序日志2:查看全部应用日志并下载到本地搜索Error关键字,发现是Metaspace空间不足,引起的OutOfMemory异常。Metaspace元空间是Java虚拟机中用于存放被加载的class数据,由于创建过多对象,导致元空间不足,引发OOM。Causedb
IIS发布.NET9 API 常见报错汇总
Zhen (Evan) Wang
.net
记录工作过程中发现的IIS常见错误。1.HTTPError500.19-InternalServerError.NET9API--》vs打包方式如下:发布到IIS后报错HTTPError500.19-InternalServerError。解决方案:下载ASP.NETCoreHostingBundle(ASP.NETCoreRuntime9.0.7)Download.NET9.0(Linux,ma
麦豆悦读英文绘本讲师训练营【第15期】---11/21--绘本赏析--《Peppa loves Christmas》
马文英语教育Gina
15-1503-辛萍-Gina今天会继续和大家分享昨天未讲完的小猪佩奇系列绘本故事书。昨天咱们一起欣赏来到了绘本的第三页,我们可以看到小猪佩奇和奶奶正在制作圣诞布丁,PeppaandGeorgehelpGrannyPigmaketheChristmaspudding.Theystirthestickymixtureroundandround.图中PeppaandGeorge两个人在制作布丁的过程中
ASP开发中的常用加密与解密技术
安检
本文还有配套的精品资源,点击获取简介:ASP开发中,为了确保数据安全和代码保护,开发者需要利用加密和解密技术。本文将介绍ASP常用的加密解密方法,包括字符串的哈希处理、对称加密算法、Base64编码以及HTML和JavaScript中的编码与解码。文中不仅解释了各种方法的使用原理,还提供了实例代码。通过这些内容,读者可以了解如何在ASP应用中安全地处理敏感数据。1.ASP常用加密解密方法介绍在信息
【网络安全】Metasploit 生成的 Shellcode 的导入函数解析以及执行流程分析(1)
IT老涵
程序员 安全 网络 网络安全 信息安全 计算机网络
2021年4月,研究人员深入分析了CobaltStrike渗透测试技术,以及它的一些签名规避技术是如何在检测技术下失效的。在本文中,我们将深入讨论Metasploit,这是一个可以与CobaltStrike互操作的常用框架。在本文中,我们将讨论以下主题:shellcode的导入解析——Metasploitshellcode如何定位来自其他DLL的函数,以及我们如何预先计算这些值来解析来自其他有效载
GaussDB 数据库架构师修炼(八) 等待事件(2)-ASP报告分析
小云数据库服务专线
GaussDB 数据库架构师修炼之路 gaussdb 数据库架构 数据库
1ASP报告简介ASP-ActiveSesionProfile(活跃会话档案信息),ASP每秒获取活跃会话事件,放到内存中,内存中的数据达阈值,会落盘gs_asp表中。ASPReport根据输入的时间段与slot个数,从内存和磁盘中取数据可视化到html中。2生成ASP报各-GUC参数说明ASP相关GUC参数GUC参数默认值说明enable_aspon是否开启活跃会话信息activesession
Java 堆内存和MetaSpace内存问题排查
埃泽漫笔
JVM java jvm
本文以两个简单的例子(堆内存溢出和MetaSpace(元空间)内存溢出)解释Java内存溢出的分析过程。常见的内存溢出问题(内存和MetaSpace内存)常见的内存溢出问题(内存和MetaSpace内存)。Java堆内存溢出Java堆内存(HeapMemory)主要有两种形式的错误:OutOfMemoryError:JavaheapspaceOutOfMemoryError:GCoverheadl
python小工具合集
Aronup
python excel 开发语言
小工具合集1.python切分excel2.python检查excel输出每列最大长度[目录下所有文件or目录下每个文件]1.python切分excel"""@Project:pythonProject@File:splitFile.py@IDE:PyCharm@Author:alice@Date:2025/3/2113:48"""importpandasaspdimportosdefsplit_
深入学习FormView控件及其在ASP.NET中的应用
鸟看世界
本文还有配套的精品资源,点击获取简介:本文深入介绍了ASP.NETWebForms中的FormView控件,解释了其功能特性及配置方法,并通过具体实例展示了如何使用FormView进行数据显示、编辑、插入、更新和删除操作。文章详细解释了FormView的基本结构、使用模板、CommandField配置以及分页实现,并讨论了相关的事件处理。通过学习本教程,开发者可以掌握如何在实际项目中应用FormV
pandas.to_sql mysql_pandas to_sql
weixin_39929595
pandas.to_sql mysql
实例:importpymysqlimportpandasaspdimportnumpyasnpfromsqlalchemyimportcreate_enginedf=pd.DataFrame([[1,"Bob",0],[2,"Kim",1]],columns=["id","name","sex"])dfidnamesex01Bob012Kim1fromsqlalchemyimportcreate_
Python代码库OpenCV之11 切割碑文
iCloudEnd
本文代码来自https://blog.csdn.net/u010095372/article/details/79420641源代码适用于python2,我做个简单修改测试图片测试图片代码#-*-coding:utf-8-*-importosimportnumpyasnpimportcv2.cv2ascvfrommatplotlibimportpyplotaspltimportheapqimpor
day 34 打卡
weixin_39908253
AI学习笔记 python 机器学习
day21常见的降维算法#先运行之前预处理好的代码importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings('ignore')#设置中文字体plt.rcParams['font.sans-serif']=['SimHei']pl
Embassy实战:Rust嵌入式异步开发指南
KENYCHEN奉孝
机器学习 AI Rust rust 开发语言 后端 嵌入式硬件
嵌入式异步框架Embassy实例以下是关于嵌入式异步框架Embassy的实用示例,涵盖常见外设操作、多任务协作和硬件交互场景。示例基于STM32和RaspberryPiPico等平台,使用Rust语言编写。GPIO控制useembassy_stm32::gpio::{Input,Output,Pull,Speed};useembassy_stm32::peripherals::PA5;//配置GP
基于孪生网络 (Siamese Network) 的人脸识别系统
DeniuHe
Pytorch pytorch
上一个帖子记录了基于普通CNN的人脸识别系统。但是,测试准确率实在太低了只有30%。这次使用孪生网络(SiameseNet)进行实现。代码实现使用了VGG19预训练模型作为特征提取器,通过对比学习来判断两张人脸图像是否属于同一人。整个代码分为数据准备、模型构建、训练和测试四个主要部分。importmatplotlib.pyplotaspltimporttorchfromtorchimportnnf
论文复现 Rank consistent ordinal regression for neural networks withapplication to age estimation
DeniuHe
Pytorch 算法
importtorchimporttorch.nn.functionalasFfromtorchimportnnfromtorch.autogradimportVariableimportpandasaspdimportnumpyasnpfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportaccurac
Pytorch实现目标检测
importosimportrandomimportpandasaspdimportnumpyasnpimportcv2fromsklearn.model_selectionimporttrain_test_splitimporttorchfromtorch.utils.dataimportDataset,DataLoaderimporttorch.nnasnnimporttorch.nn.fun
spring概述及其中基于xml的ioc配置
书到用时f恨少
1.spring是什么?Spring是分层的JavaSE/EE应用full-stack轻量级开源框架,以IoC(InverseOfControl:反转控制)和AOP(AspectOrientedProgramming:面向切面编程)为内核,提供了展现层SpringMVC和持久层SpringJDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多
.net core ef oracle,.NET Core EntityFrameworkCore(EF Core)介绍
weixin_39639698
.net core ef oracle
目前最新的EFCore版本是3.0,最稳定的EFCore版本是2.2。EFCore的计划与.NETCore以及ASP.NETCore版本同步。EFCore是一个.NETStandard库,使用EFCore开发面向.NETCore的应用。生成.NETCore应用需要安装.NETCoreSDK。最后,不同的EF数据库提供程序使用可能需要特定的数据库引擎版本、.NET实现或操作系统。请确保可用的EFCo
Python ffmpeg视频处理
程序媛一枚~
视频处理 Python OpenCV ffmpeg python 音视频
2.源码#coding=utf-8importffmpegimportgetpassimportsubprocessimportmatplotlib.pyplotaspltimportcv2importnumpyasnpimportos#ffmpeg相关的音视频操作指令函数#程序列表:'''comband_av音频视频合并comband_aa音频合并pick_v视频静音acceler
泽平 的ScalersTalk第六轮新概念朗读持续力训练Day 95 20210626
郑泽平
练习材料:Lesson94FuturechampionsExperimentshaveprovedthatchildrencanbeinstructedinswimmingataveryearlyage.AtaspecialswimmingpoolinLosAngeles,childrenbecomeexpertatholdingtheirbreathunderwaterevenbeforethe
eclipse maven
IXHONG
eclipse
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
timer cancel方法的一个小实例
alleni123
多线程 timer
package com.lj.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer extends TimerTask
{
private int a;
private Timer timer;
pub
MySQL数据库在Linux下的安装
ducklsl
mysql
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
spring------>>cvc-elt.1: Cannot find the declaration of element
Array_06
spring bean
将--------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3
maven发布第三方jar的一些问题
cugfy
maven
maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令
有许多参数,具体可查看
http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
以下是一个例子:
mvn deploy:deploy-file -DgroupId=xpp3
MYSQL下载及安装
357029540
mysql
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
ios TableView cell的布局
张亚雄
tableview
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];
CGSize itemSize = CGSizeMake(60, 50);
&nbs
Java编码转义
adminjun
java 编码转义
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
Tomcat 配置和spring
aijuans
spring
简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。
Server.xml -- tomcat主
Java打印当前目录下的所有子目录和文件
ayaoxinchao
递归 File
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
linux安装mysql出现libs报冲突解决
BigBird2012
linux
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
jedis连接池使用实例
bijian1013
redis jedis连接池 jedis
实例代码:
package com.bijian.study;
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoo
关于朋友
bingyingao
朋友 兴趣爱好 维持
成为朋友的必要条件:
志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。
志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他
【Spark七十九】Spark RDD API一
bit1129
spark
aggregate
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
//测试RDD的aggregate方法
object AggregateTest {
def main(args: Array[String]) {
val conf = new Spar
ktap 0.1 released
bookjovi
kernel tracing
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu
能保存Properties文件注释的Properties工具类
BrokenDreams
properties
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。
&nb
读《研磨设计模式》-代码笔记-外观模式-Facade
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地
After Effects教程收集
cherishLC
After Effects
1、中文入门
http://study.163.com/course/courseMain.htm?courseId=730009
2、videocopilot英文入门教程(中文字幕)
http://www.youku.com/playlist_show/id_17893193.html
英文原址:
http://www.videocopilot.net/basic/
素
Linux Apache 安装过程
crabdave
apache
Linux Apache 安装过程
下载新版本:
apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi)
apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi)
httpd-2.2.15.tar.gz(下载网站:http://httpd.apac
Shell学习 之 变量赋值和引用
daizj
shell 变量引用 赋值
本文转自:http://www.cnblogs.com/papam/articles/1548679.html
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
dcj3sjt126com
java jdk
Java SE 第一讲:
Java SE:Java Standard Edition
Java ME: Java Mobile Edition
Java EE:Java Enterprise Edition
Java是由Sun公司推出的(今年初被Oracle公司收购)。
收购价格:74亿美金
J2SE、J2ME、J2EE
JDK:Java Development
YII给用户登录加上验证码
dcj3sjt126com
yii
1、在SiteController中添加如下代码:
/**
* Declares class-based actions.
*/
public function actions() {
return array(
// captcha action renders the CAPTCHA image displ
Lucene使用说明
dyy_gusi
Lucene search 分词器
Lucene使用说明
1、lucene简介
1.1、什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。
1.2、lucene能做什么
要回答这个问题,先要了解lucene的本质。实际
学习编程并不难,做到以下几点即可!
gcq511120594
数据结构 编程 算法
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。
1、确定目标
学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到
Java面试十问之三:Java与C++内存回收机制的差别
HNUlanwei
java C++ finalize() 堆栈 内存回收
大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的
第二章 Nginx+Lua开发入门
jinnianshilongnian
nginx lua
Nginx入门
本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:
nginx启动、关闭、重启
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
agentzh 的 Nginx 教程
http://openresty.org/download/agentzh-nginx-tutor
MongoDB windows安装 基本命令
liyonghui160com
windows安装
安装目录:
D:\MongoDB\
新建目录
D:\MongoDB\data\db
4.启动进城:
cd D:\MongoDB\bin
mongod -dbpath D:\MongoDB\data\db
&n
Linux下通过源码编译安装程序
pda158
linux
一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /b
WEB开发编程的职业生涯4个阶段
shw3588
编程 Web 工作 生活
觉得自己什么都会
2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。
根本不是自己想的那样
2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,
遭遇jsonp同域下变作post请求的坑
vb2005xu
jsonp 同域post
今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id ']));
$mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.aj