当前位置:大学毕业论文> 硕士论文>材料浏览

关于递归算法类函授毕业论文范文 与基于递归算法的多级独立目录文件上传技术的实现方面专科开题报告范文

主题:递归算法论文写作 时间:2024-01-26

基于递归算法的多级独立目录文件上传技术的实现,本文是关于递归算法类论文怎么写和递归算法和文件上传和多级方面论文怎么写.

递归算法论文参考文献:

递归算法论文参考文献 国家级刊物目录北核期刊目录邮局订阅期刊目录论文目录

基于递归算法的

多级独立目录文件上传技术的实现

张立涛 阮智 汪玲 田 越

(武汉科技大学管理学院,湖北武汉430081)

摘 要:文件上传功能在Ja web开发的网站中有着广泛的应用,在传统功能的基础上,通过数据封装技术和递归算法的使用,实现了多级独立目录文件的上传,满足了用户新的需求.

关键词:文件上传;独立目录;递归;JaScript

中图分类号:TB

文献标识码:A

doi;10. 19311/j.cnki. 1672-3198. 2017. 15. 091

1现状与新需求

文件上传是Ja Web系统中很常见的一种处理,一般通过客户端Form表单,基于HTTP的RFC1867上传规范实现文件数据的传输和解析.现在的网站中,大量的使用到了文件上传的功能.一般来说都是每次只能上传一个文件,利用<input type等于”file”id一””enctype一“multipart/form - data”>来实现的,input标签放在一个form表单,最后把数据提交到后台,后台逻辑处理时一般就是让一个文件名对应着一个目录.

有些时候会出现一些新的需求,比如在某高校大学生创新学分管理系统中,教师审核学生的证明材料.由于每个学生的加分项目不止一个,每个项目的证明材料也是多个,传统的文件上传就是一个材料生成一个文件夹,这样做的后果会让审核人员弄不清楚某个证明材料是证明哪个项目的,给审核带来了麻烦.为了方便审核,老师就希望得到这样的目录结构:班里每个同学都有一个文件夹,一个同学的文件夹下有若干项目的文件夹,这些具体的项目文件夹下有着该项目的具体证明材料的文件.

图1文件上传一级目录

一个具体的例子,一个班级有28个学生,这个时候有28个以同学姓名加学号命名的文件夹;其中有个叫张立涛的同学,他有三个项目可以加分,这样张立涛201405165034的文件夹下就有3个项目的文件夹;其中一个项目是科研训练类,证明材料有5张图片和一份Word文档,科研训练类科研项目(国家级)完成立项申报、实验研究、结题等全过程且项目结题通过验收第二负责人文件夹下有6个具体的文件.通过这样的处理,审核老师就可以很方便的找到某个学生的某个项目的证明材料,进而对创新学分进行审核.效果如图2、图3所示.

2设计思想

为了解决上述所面临的的新需求,本文提出了如下的设计思路(图4):

图2文件上传二级目录图3文件上传二级目录中的文件

图4基于递归算法的多级独立目录文件上传

学生在网页上通过文件上传按钮来上传文件,然后JaScript的方法就会把这些文件的数据进行封装;学生可以多次的点击上传按钮,这样可以把一个项目的所有证明材料一起上传,JaScript方法可以把这些数据批量封装然后提交到后台处理.

后台接收到数据,然后构建文件路径的字符串,最后利用递归算法创建独立目录的文件夹.

3设计与实现

3.1数据封装

文件多次上传的实现,点击上传附件的时候后调用js的previewFiles()方法,通过document. getElementByld()获取到input和li标签的值.把获取的文件名在页面输出,然后把input的id属性值和一个逗号添加到filesArray上,再把li标签隐藏起来,把全局变量count的值加1,使得再次调用previewFiles()方法时,会得到不同count;最后生成新的li和input标签.这样在页面上就会出现一个外形相同的上传附件按钮.

数据封装,previewFiles()方法中的filesArray字符串保存了多个文件的数据,并且做了特殊的处理,使之能被后台直接使用.最后调用upload()方法,把封装好的数据传递到后台.

<form action -¨proj ectAction_ uploadProj ect. do¨id等于¨upload- form¨method等于¨post¨enctype等于¨multi-part/form- data¨>

<ul class等于¨operation¨id等于¨operationUl¨>

<:li class等于

uploadFiles¨ id一¨uploadFilesLio v><a href等于¨#¨>

<!一文件上传的按钮一一>

<input type等于¨file¨name-¨projectFiles¨id等于¨一files0¨

onchange等于¨previewFiles()¨/>上传附件</a>

<li>

</ul>

<form>

Js文件的代码

var count -O:

function previewFiles()(

var time - new Date(). Format(¨yyyy-MM—dd hh:mm¨);

var files—document. getElementByld( v_files¨+ count). value;

var filelist — document. getElementByld(¨files¨);

var fileName—getFileName(files);

var lis—document. createElement(¨liff);

filelist. appendChild(lis);

lis.innerHT~/IL—fileName+¨<span>¨+time+v</span>¨;

//隐藏和创建新的文件上传input

document. getElementByld(¨uploadFilesLi¨+count). style. display一vnone¨;//隐藏

filesArray+一¨filesv+ count+¨,¨;

count-l- -l-;

var liFile—document. createElement(¨li¨);

liFile. setAttribute(”class¨,¨uploadFiles¨);

liFile. setAttribute(¨id¨, ¨uploadFilesLi¨ +count);

var liHtml一v<a href等于´#´> <input type等于´file´ name等于´projectFiles´ id等于´_files¨+count+¨7 0n-change等于´previewFiles("/>上传附件</a>¨;

liFile. innerHT~/IL—liHtml;

$(7# operationUl´). prepend(liFile);

)

function upload()(

$(¨# submitBtn¨).attr(¨disabled¨,true);

filesArray—filesArray. substring(O,filesAr-ray. length -1);

$.ajaxFileUpload((

url:´projectAction_uploadProject. do´,//用于文件上传的服务器端请求地址

secureuri:false,//一般设置为false

fileElementld:filesArray,//文件上传空间的id属性

dataType:´jsorf,//返回值类型一般设置为json

success: function(data, status)

//就是root对应的值这里是resulti!

var member—eval(’’(’’+data+’’)’’);//包数据解析为json

if(member. result:

¨success’’){

alert(¨保存成功¨);

window. parent. close();

) else{

alert(¨保存失败¨);

window. location. reload();

)

),

error:function(data,status,e)//服务器响应失败处理函数

(

alert(’’上传失败,不支持上传格式’’);

)

));

)

3.2 递归算法创建文件夹

递归算法的特点,它简化了程序设计的很多过程,并且使程序结构清晰,程序的易读性也很好,其正确性容易得到验证,给程序开发人员带来了很大的方便.对于文件的获取,首先定义了一个文件数组和一个文件名数组,Struts框架会利用文件把前台文件数据放在声明的文件数组里面,文件名字会封装在文件名数组中.接下来利用ja的字符串对象构建文件目录路径.比如:学院/毕业届数/专业/班级/学生十学号/项目类别这样结构,最后利用递归的思想逐级创建的好文件夹.

private void createDir(Strlng realPath, StringdirNames){

String absRealPath—realPath+dirNames+¨/ff;

File file—new File(absRealPath);

//如果文件夹不存在则创建

if(! file.exists())<(

file.mkdirs();

)

)

通过短短几行代码,就可以实现新需求所需要的文件目录结构.

4 结束语

通过JaScript和Aj ax技术的结合使用,还有前台JSP页面和后台逻辑代码的巧妙处理,实现了多文件上传,并且生成独立目录,从而满足了我们的需求.前台代码使用了循环,提高了代码的可重用性,后台代码使用了递归算法,使逻辑清晰,并且减少了代码的使用量.

参考文献[1]陈晓华,田刚.关于JSP无组件文件上传的研究与实现[J].计算 机与现代化,2011,(3):131-133.

[2]刘晓华,张健,周慧贞.JSP应用开发详解[M].北京:电子工业出 版社,2007.

[3]张素霞.基于数据结构的程序递归算法设计[J].硅谷,2012,

(12):48-48.

上文点评:本文是一篇关于经典递归算法专业范文可作为递归算法和文件上传和多级方面的大学硕士与本科毕业论文递归算法论文开题报告范文和职称论文论文写作参考文献.

韩国独立运动的由来
1894 年甲午战争后,日本势力正式进入朝鲜半岛 俄德法三国干涉日本还辽之后,朝鲜王室闵妃引进俄国势力,使得日俄两国各据朝鲜一方,形成权力均势,皇室尚能苟安一时 不过1905 年日俄战争,俄国惨败,日.

被算法实现的天真梦想
摘自读者药师 文2017年10月,诺贝尔经济学奖揭晓,获奖者理查德·泰勒,研究的是人类种种理性和非理性的行为决策 虽然经济学时常强调“理性人假设”,假定经济活动.

1957年-马来西亚独立
马来西亚是东南亚的国家之一,1957年8月31日独立 马来西亚是一个由十三州和三个联邦直辖区组成的联邦体制国家,面积有329847平方公里,首都为吉隆坡,政治中心位于布城 马来西亚是东南亚国家联盟的创.

老人应该学会养老,也应学会独立坚强
据有关资料记载,全国老人的数量已超过2 3 亿,而成都的老年人数量已达300 万 人数众多的老人或多或少都应该学习一些养老、养生的保健知识 很多有文化的老人懂得生活,懂得老人为什么长寿,他们的长寿反映.

论文大全