一种面向Mediawiki的图片批量上传的控制方法及系统的制作方法

文档序号:6352713阅读:282来源:国知局
专利名称:一种面向Mediawiki的图片批量上传的控制方法及系统的制作方法
技术领域
本发明涉及Mediawiki文字及图片上传技术领域,具体地说是一种面向mediawiki的图文同步上传方法以及相应的控制系统。
背景技术
Mediawiki是全球最著名的,运行于PHP+MySQL环境的Wiki知识库引擎。从2002年2月25日被作为维基百科全书的系统软件,并有大量其他应用实例,如目前国内的天下维客、互动百科、百度百科等站点都采用这套系统。随着Internet的发展,信息充斥于整个网络环境中,为人们获取信息提供了便捷,但如何管理以及有效的利用这些信息,却成为海量信息的一大问题。Mediawiki提供一种用户添加、删除、编辑系统中的所有内容(文字以及图片)的机制,使得信息协同创作和信息共享领域取得了迅速发展,在信息的组织和传播利用中也起到了重要作用,更有利于企业内部信息的共享。然而Mediawiki引擎只支持一个用户一次性对一个条目进行添加、编辑,不能方便、快速的把网络中存在的大量信息(文字和图片)一次性导入,这使得用户的工作量大,且不能保证信息的实时更新。且Mediawiki提供的图片上传方法,不支持svg格式图片和图片名包含特殊字符(除英文字母和阿拉伯数字之外的字符)的图片的上传,且每次上传只能上传一张图片。针对上述问题还没有比较便捷、有效的解决方案。

发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向Mediawiki的图片批量上传的控制方法以及相应的控制系统。根据本发明的一个方面,提供一种面向Mediawiki的图片批量上传的控制方法,其用于将批量图片一次性上传至基于Mediawiki的系统,其特征在于,包括如下步骤
a.获取一张待上传图片;
c.判断所述待上传图片是否为SVG格式的图片;
d.若所述待上传图片为SVG格式的图片,则将其转换为PNG格式的图片,并将转换格式后的图片作为所述待上传图片;
e.上传所述待上传图片;
g.判断是否还存在其他未被上传的待上传图片,若存在,则再次执行所述步骤a。优选地,本发明所提供的上述控制方法还可以通过如下具体步骤实现
第一步获得需导入的信息
本发明并不包括从网络获取内容。本发明的输入为以Xml格式存储的文字信息以及各种格式的图片。需导入的信息可通过网络爬虫或其它有效方法从网络网页中获得,如维基百科、互动百科、新浪、新闻网站等。存储文字信息的Xml文件中条目整个条目放在〈page〉标签中,条目名在〈title〉标签中,条目内容在<page_content>标签中;页面中的图片下载后可放于任一路径。第二步文字信息导入
文字信息存储在xml文件中,以条目为单位,具体操作步骤
I.获得xml文件。2.读取xml文件,获得一个条目的名称和内容。3.判断Mediawiki中是否已经存在此条目,如存在则进行更新;不存在,则添加。4. 一个条目操作完成,重复第2步和第3步,直到所有条目操作完成。5.显示成功更新的条目名。第三步图片批量导入
Mediawiki本身的图片上传机制一次只能上传一张图片,且不支持svg格式和图片名带特殊字符的图片的上传。图片批量导入的具体操作步骤
I.手动设置图片所在路径。2.根据路径获得所有要上传的图片。3.获得一张图片,判断图片名称中是否含有特殊字符。4.如含有特殊字符,则使用shal技术,把图片名转化为对应的shal值,不改变图片的后缀名;如不含特殊字符,到第5步。Mediawiki系统中是根据图片名称来找到图片存储路径,并在页面中显示,如只是把图片名改成shal值,则文字中对应的原图片名的链接将找不到图片而无法正确显示,所以需对文字内容进行更改,把文字中对应的原图片名更改为shal之后的图片名。5.从图片的后缀名处判断图片是否是svg图片。6.如是svg图片,把svg图片转换为png图片;如不是到第7步。存在与第四步中文字中的图片名与图片不相符的问题,需更改含有此图片的词条的内容,使图片能正确显示。7.调用Special: :processUpload接口,上传图片,在图片所在的文件夹中删除成功上传的图片。8.重复调用第2步到第7步,直到所有图片上传成功。
9.显示成功上传的图片。弟四步文子和图片导入完成
本发明进一步实施为对Mediawiki中内部链接的统计,找出红色链接(即不存在的条目),针对这些不存在的条目,从网络中获得信息,保证完整性和更高的可用性。根据本发明的另一个方面,还提供一种在Mediawiki系统中面向Mediawiki的图片批量上传的控制系统,其特征在于,根据上述控制方法实现面向Mediawiki的图片批量上传和/或文字上传。与背景技术相比,本发明有以下优点
CO操作简单、方便、效率高。⑵具有实时性能实时的进行更新,保证系统中的信息是网络中的最新信息。⑶具有完整性通过对内部链接的统计,能找出系统中哪些条目不存在,能有针对性的进行信息获取和导入,保证了完整性。⑷支持svg格式图片的上传=Mediawiki系统自带的图片上传方式,不支持svg格式的图片。本发明首先把SVg格式的图片转换为png格式的图片,然后再上传。(5)支持图片名带特殊字符的图片的上传Mediawiki系统自带的图片上传方式也不支持图片名带特殊字符的图片的上传,特殊字符即除了英文字母以及阿拉伯数字之外的其它字符。本发明检测图片名中是否含有特殊,如有刚把图片名转换为对应的shal值,使得图片名中只包含英文字母和数字。(6)支持文字和图片批量导入用户一次只能对单个条目进行添加、编辑以及只能对单张图片进行上传,在文字 和图片数量比较大时耗时、耗力,本发明支持条目和图片的批量上传。本领域技术人员理解,一个条目内通常包含众多的文字,本发明支持条目和图片的批量上传,实际上实现了文字和图片的批量导入。


通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显
图I示出根据本发明的第一实施例的,面向Mediawiki的图片批量上传的控制方法的流程 图2示出根据本发明的第二实施例的,面向Mediawiki的图片批量上传的控制方法的流程图;以及
图3示出根据本发明的第三实施例的,面向Mediawiki的文字批量上传的控制方法的流程图。
具体实施例方式本发明的目的是提供一种面向Mediawiki的图文同步上传方法,该方法是在Mediawiki现有机制的基础上,使本地维基百科支持条目和图片的批量导入,保证图文信息有效地同步实时更新;且运用对内部链接的统计,找出系统中不存在的条目,方便有针对性的添加条目,有利于系统的完整性和可用性。本发明的目的是这样实现的
针对网络中感兴趣的信息,通过有效的方法,首先获得到文字信息,并以xml的方式存储,其次获得到页面的图片信息。本发明即针对上述两种信息,分别在Mediawiki中增加不同的扩展,实现文字与图片的同步上传。首先是文字批量导入,加入pagesUpdate扩展,主要使用Mediawiki中Article类的updateArticle O和insertNewArticle O。如添加新的条目(,其中,一个条目内包含众多文字),刚使用insertNewArticle O ;如更新已有条目,使用updateArticle O。其次是图片批量导入,加入imagesUpload扩展。主要基于SpecialPage类的processUpload接口之上,实现图片的批量上传。并弥补了 processUpload接口对于特殊字符以及某些图片格式不支持的缺点。图I示出根据本发明的第一实施例的,面向Mediawiki的图片批量上传的控制方法的流程图。
首先执行步骤SlOl :获取一张待上传图片。具体地,本领域技术人员理解,由于本发明要解决批量上传图片和/或文字的问题,所以需要从多张待上传图片中选择一个待上传图片,即获取该待上传图片的过程。优选地,这些待上传图片被放置于一个或多个文件夹下,并各自有自己的名称,相应地,本发明提供的控制系统可以从所述一个或多个文件夹中获取这些待上传图片。本领域技术人员结合现有技术实现本步骤,在此不予赘述。其次进入步骤S102 :判断所述待上传图片是否为SVG格式的图片。具体地,在本实施例中,所述步骤,针对SVG格式的图片进行特殊处理,而针对其他格式的图片则不再进行特殊处理。本领域技术人员理解,根据现有技术,本发明提供的控制系统可以确定所述待上传图片是否为SVG格式的图片,例如最简单的实现办法是判断该图片的后缀名,而比较复杂的办法则是根据该图片的存储格式来确定该图片的性质,在此不予赘述。进一步地,本领域技术人员理解,在一个变化例中,本步骤以及下述步骤S103也可以被省略,在此不予赘述。然后执行步骤S103 :若所述待上传图片为SVG格式的图片,则将其转换为PNG格式的图片,并将转换格式后的图片作为所述待上传图片。若上述步骤S102的判断结果是肯定的,则执行本步骤;否则,则直接进入下述步骤S104。进一步地,本领域技术人员理解,可以通过现有技术中提供的图片格式转换工具来实现对所述SVG格式的图片转换为PNG格式的图片的过程,例如可以通过所述控制系统在后台调用ACDSEE图片工具所提供的应用程序接口来实现图片转换过程,在此不予赘述。进一步地,本领域技术人员理解,在一个变化例中,在本步骤中,也可以将所述SVG格式的图片转换为一个其他格式的图片,例如tif、jpg或类似文件,这并不影响本发明的实质内容,在此不予赘述。接下来进入步骤S104 :上传所述待上传图片。在本步骤中,通过upload过程来实现上传的过程,本领域技术人员结合现有技术可以实现本步骤,例如至少可以调用Special: : processUpload接口上传所述待上传图片,在此不予赘述。最后进入步骤S105 :判断是否还存在其他未被上传的待上传图片,若存在,则再次执行所述步骤SlOl。与上述步骤SlOl相对应,由于优选地存在多张待上传图片,所以在通过上述步骤SlOf S104上传了一张图片后,为了实现批量上传图片的目的,进一步再次针对下一张待上传图片执行上述步骤SlOf S104,从而实现批量上传图片的目的。进一步地,本领域技术人员理解,至少在上述步骤S104中,本发明所提供的所述控制系统可以针对正在被上传的待上传图片设定一个标签(Tag),表明该待上传图片已经被上传了,于是在步骤S105中,至少根据所述标签,所述控制系统可以判断是否还存在未被上传的图片,在此不予赘述。进一步地,本领域技术人员理解,在一个变化例中,在上述步骤S104与所述步骤S105之间还包括步骤f.删除所述被上传的待上传图片。该步骤也是为了配合上述步骤S105而设置的,即确认上传了一张图片后即删除该图片,从而所述待上传图片集合中的待上传图片就减少一个。从而在所述步骤S105中,只要判断所述待上传图片集合是否为空集即可,如果不是空集则再次执行步骤S101,否则本次过程结束。在这样的变化例中,所述步骤SlOl则按照特定规则选取下一张待上传图片,例如按照文件尺寸大小来选择下一张图片,或者根据文件名排序来选择下一张图片。 进一步地,本领域技术人员理解,在一个变化例中,在上述步骤SlOl与所述步骤S102之间还包括如下步骤b.针对所述待上传图片执行图片名称检查操作。在某些情况下,所述待上传图片的文件名称可能需要进行合法性检查。例如,优选地,当所述文件名称不符合本发明所提供的控制系统所设定的技术规范,则使用所述待上传图片的原有图片名称是无法完成上传等步骤,因此,需要对所述文件名称进行合法性检查。这样,在本步骤中,可以判断所述文件名称是否合法,例如是否文件名长度超出阈值m,又例如所述文件名中是否包含非法字符,等等。进一步地,在下述内容中对此还有类似描述,在此不予赘述。进一步地,本领域技术人员理解,在一个变化例中,上述步骤b包括如下步骤 bl判断所述待上传图片的文件名中是否包括特殊字符;
b2.若所述待上传图片的文件名中包括一个或多个特殊字符,则将所述文件名称更改为可以被所述基于Mediawiki的系统所认可的字符,否则步骤b结束;b3.判断是否存在与所述待上传图片文件名对应的文字;
b4.若存在与所述待上传图片文件名对应的文字,则相应地更改所述文字,使得被更改后的文字与所述被更改后的所述待上传图片的文件名称相适应。本领域技术人员理解,在这样的变化例中,以Mediawiki的系统所认可的字符为技术规范,并针对不符合该规范的字符进行更改处理。本领域技术人员理解,所述Mediawiki的系统所认可的字符可以被存储在一个数据表中,在本变化例中,本发明所提供的控制系统可以针对所述图片的文件名称中的每个字符来查询该数据表,判断每个字符是否存在于所述数据表中,若存在,则认定文件名称合法;否则,则相应地确定非法字符,并相应地执行后续更改操作。又例如,不被Mediawiki系统所认可的字符可以存储于另一个数据表中,则本发明所提供的控制系统可以查询该数据表,若所述图片的文件名称中的一个字符存在于所述数据表中,则确定该字符非法,在此不予赘述。进一步地,本领域技术人员理解,所述更改的操作可以通过各种方式实现,例如可以做一个简单的替换,将非法字符替换为合法字符,具体如下述内容。更进一步地,本领域技术人员理解,在一个优选实施例中,英文字母或数字优选地被认为是被所述Mediawiki的系统所认可的字符,除此之外的字符、符号均属于非法字符,因此,在这样的实施例中,本发明提供的控制系统只需要判断所述图片的文件名称中是否包含除英文字母或数字以外的字符,若有,则确定所述文件名称非法,在此不予赘述。进一步地,本领域技术人员理解,在一个变化例中,上述步骤b2中的将所述文件名称更改为可以被所述基于Mediawiki的系统所认可的字符的步骤包括如下步骤将所述待上传图片的文件名称中除后缀名之外的部分以SHAl算法进行运算,并将运算后结果与所述后缀名拼接为所述更改后的文件名称。在本变化例中,通过SHAl算法进行运算,以实现对所述文件名称的更改。本领域技术人员结合现有技术以及上述实施例可以实现本变化例,例如至少可以参考关于SHAl的书籍实现,在此不予赘述。进一步地,本领域技术人员理解,在一个变化例中,在上述图I所示实施例以及变化例中的各步骤后还包括如下步骤
h获取待上传文字;
i判断所述待上传文字在所述基于Mediawiki的系统中是否已经存在; j若所述待上传文子在所述基于Mediawiki的系统中尚不存在,则上传所述待上传文
字;k.判断是否还存在其他待上传文字,若存在则继续执行所述步骤h。本领域技术人员理解,在图I所示各步骤中,针对批量图片进行上传处理。而在本变化例中,则针对文字进行批量处理。若将两者合并为一个完整的流程,则可以同时对文字、图片进行混合处理。本领域技术人员结合现有技术以及上述实施例、变化例对此可以理解并实现,在此不予赘述。进一步地,上述变化例中的所述步骤h包括如下步骤
hi.获取一 XML文件,所述待上传文字存储于所述XML文件中;h2.读取所述XML文件,并获取其中一个条目中的所述待上传文字。本领域技术人员理解,优选地,所述一个条目为所述XML文件中的一个<page_content>所对应的内容,在此不予赘述。进一步地,本领域技术人员理解,所述步骤ITj可以作为独立的步骤存在,即只针对文字部分进行处理,这并不影响本发明的实质内容,在此不予赘述。进一步地,图2示出根据本发明的第二实施例的,面向Mediawiki的图片批量上传的控制方法的流程图。本领域技术人员理解,Mediawiki本身的图片上传机制一次只能上传一张图片,且不支持svg格式和图片名带特殊字符的图片的上传。图片批量导入的具体操作步骤
I.手动设置图片所在路径。2.根据路径获得所有要上传的图片。3.获得一张图片,判断图片名称中是否含有特殊字符。4.如含有特殊字符,则使用shal技术,把图片名转化为对应的shal值,不改变图片的后缀名;如不含特殊字符,到第5步。Mediawiki系统中是根据图片名称来找到图片存储路径,并在页面中显示,如只是把图片名改成shal值,则文字中对应的原图片名的链接将找不到图片而无法正确显示,所以需对文字内容进行更改,把文字中对应的原图片名更改为shal之后的图片名。5.从图片的后缀名处判断图片是否是svg图片。6.如是svg图片,把svg图片转换为png图片;如不是到第7步。存在与第四步中文字中的图片名与图片不相符的问题,需更改含有此图片的词条的内容,使图片能正确显示。7.调用Special: :processUpload接口,上传图片,在图片所在的文件夹中删除成功上传的图片。8.重复调用第2步到第7步,直到所有图片上传成功。9.显示成功上传的图片,结束。相应地,图3示出根据本发明的第三实施例的,面向Mediawiki的文字批量上传的控制方法的流程图。文字信息存储在xml文件中,以条目为单位,具体操作步骤
I.获得xml文件。2.读取xml文件,获得一个条目的名称和内容。3.判断Mediawiki中是否已经存在此条目,如存在则进行更新;不存在,则添加。本领域技术人员理解,如添加新的条目,刚使用insertNewArticle O ;如更新已有条目,使用updateArticle O ,在此不予赘述。4. 一个条目操作完成,重复第2步和第3步,直到所有条目操作完成。5.显示成功更新的条目名,结束。本领域技术人员理解,在上述图2以及图3所示实施例中,完成了条目批量导入,即文字批量导入,以及图片批量导入。例如,优选地,首先是文字批量导入,加入 pagesUpdate 扩展,主要使用 Mediawiki 中 Article 类的 updateArticle O 和insertNewArticle O。如添加新的条目,刚使用insertNewArticle O ;如更新已有条目,使用updateArticle O。其次是图片批量导入,加入imagesUpload扩展。主要基于SpecialPage类的processUpload接口之上,实现图片的批量上传,并弥补了processUpload接口对于特殊字符以及某些图片格式不支持的缺点。 进一步地,参考上述图2以及图3所示实施例,本领域技术人员理解,将两个实施例合并实施,则可以完成针对文字和图片导入,从而实现图文并茂的批量处理,在此不予赘述。更进一步地,本发明进一步实施为对Mediawiki中内部链接的统计,找出红色链接(即不存在的条目),针对这些不存在的条目,从网络中获得信息,保证完整性和更高的可用性,在此不予赘述。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
权利要求
1.一种面向Mediawiki的图片批量上传的控制方法,其用于将批量图片一次性上传至基于Mediawiki的系统,其特征在于,包括如下步骤 a.获取ー张待上传图片; c.判断所述待上传图片是否为SVG格式的图片; d.若所述待上传图片为SVG格式的图片,则将其转换为PNG格式的图片,并将转换格式后的图片作为所述待上传图片; e.上传所述待上传图片; g.判断是否还存在其他未被上传的待上传图片,若存在,则再次执行所述步骤a。
2.根据权利要求I所述的控制方法,其特征在于,在所述步骤e与所述步骤g之间还包括步骤 f.删除所述被上传的待上传图片。
3.根据权利要求I或2所述的控制方法,其特征在于,在步骤a与所述步骤c之间还包括如下步骤 b.针对所述待上传图片执行图片名称检查操作。
4.根据权利要求3所述的控制方法,其特征在于,所述步骤b包括如下步骤 bl.判断所述待上传图片的文件名中是否包括特殊字符; b2.若所述待上传图片的文件名中包括ー个或多个特殊字符,则将所述文件名称更改为可以被所述基于Mediawiki的系统所认可的字符,否则步骤b结束;b3.判断是否存在与所述待上传图片文件名对应的文字; b4.若存在与所述待上传图片文件名对应的文字,则相应地更改所述文字,使得被更改后的文字与所述被更改后的所述待上传图片的文件名称相适应。
5.根据权利要求4所述的控制方法,其特征在于,所述步骤b2中的将所述文件名称更改为可以被所述基于Mediawiki的系统所认可的字符的步骤包括如下步骤 -将所述待上传图片的文件名称中除后缀名之外的部分以SHAl算法进行运算,并将运算后结果与所述后缀名拼接为所述更改后的文件名称。
6.根据权利要求I至5中任一项所述的控制方法,其中,所述步骤e包括如下步骤 el.调用Special: :processUpload接口上传所述待上传图片。
7.根据权利要求I至6中任一项所述的控制方法,其特征在于,还包括如下步骤 h.获取待上传文字; i.判断所述待上传文字在所述基于Mediawiki的系统中是否已经存在; j.若所述待上传文子在所述基于Mediawiki的系统中尚不存在,则上传所述待上传文字; k.判断是否还存在其他待上传文字,若存在则继续执行所述步骤h。
8.根据权利要求7所述的控制方法,其中,所述步骤h包括如下步骤 hi.获取ー XML文件,所述待上传文字存储于所述XML文件中; h2.读取所述XML文件,并获取其中ー个条目的所述待上传文字。
9.根据权利要求8所述的控制方法,其中,所述ー个条目为所述XML文件中的ー个<page_content>所对应的内容。
10.ー种在Mediawiki系统中面向Mediawiki的图片批量上传的控制系统,其特征在于,根据上述权利要求I至9中任一项所述的控制方法实现面向Mediawiki的图片批量上 传和/或文字上传。
全文摘要
本发明提供一种面向Mediawiki的图片批量上传的控制方法,其用于将批量图片一次性上传至基于Mediawiki的系统,其特征在于,包括如下步骤a.获取一张待上传图片;c.判断所述待上传图片是否为SVG格式的图片;d.若所述待上传图片为SVG格式的图片,则将其转换为PNG格式的图片,并将转换格式后的图片作为所述待上传图片;e.上传所述待上传图片;g.判断是否还存在其他未被上传的待上传图片,若存在,则再次执行所述步骤a。本发明有以下优点⑴操作简单、方便、效率高;⑵具有实时性;⑶具有完整性;⑷支持svg格式图片的上传;⑸支持图片名带特殊字符的图片的上传;⑹支持条目和图片批量导入。
文档编号G06F17/30GK102622344SQ20111000295
公开日2012年8月1日 申请日期2011年1月9日 优先权日2011年1月9日
发明者俞云飞, 吕钊, 曹艳娇, 李琴, 梁璐, 蔡颂梅, 陈鹏, 黄小霞 申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1