用cos组件上传文件前先验证文件是否已存在

在实现考试系统试题录入功能时,通过cos组件上传文件前,需要检查服务器是否存在同名文件以避免覆盖。使用MultipartParser检查文件名,如果文件已存在则取消上传。接着,通过MultipartParser读取并存储同名表单信息到Vector,避免使用MultipartRequest,因为两者不能同时使用。最后,将Vector转换成数组并调用model层方法处理数据。

在做考试系统的“试题录入”功能时发现,利用cos组件的MultipartRequest可以很顺利地上传文件并获取客户端其余的表单参数

 

  但是我想在上传文件前先验证服务端目录里有没有同名的文件,如果有则取消上传操作,以免意外覆盖掉原有的文件。这时候就不能使用MultipartRequest了,因为调用该类的构造函数的同时就进行了文件上传操作,根本没有机会进行重名等相关判断。

  于是我想可以用MultipartParser获取文件名,这样就可以检查服务端是否有重名文件。

  如果通过了重名验证,我想再利用MultipartRequest来进行文件上传,因为该类拥有获取同名表单信息,返回数组的方法(例如answer和score),比较方便。可是无奈的发现,用了MultipartParser后,就用不了MultipartRequest了

  由于这一该死的限制,只好将MultipartParser用到底了,上传代码如下:

  获取同名表单信息的方法,由于mp的readNextPart方法是将提交的表单信息一个个读取的,而同名的表单信息(例如answer和score)的数量是不确定的,教师在出题时,一道填空题可以有多个空,每个空拥有对应的参考答案和分值,教师可以随意添加或减少考空的数量。所以只能先将它们存放在一个vector里,等循环完毕后,再从该vector对象中提取数组。

  当然也可以直接把vector传入model层的方法里,不过之前编码时已经让该方法接受数组参数,现在不想改动它了。

  因为既然answer和score是一一对应的关系,所以最好的方法应该是,把它们都封转在一个对象(Blank)里面,充当它的属性,然后把这些对象都放在一个集合对象(例如Vector)中,再把该集合作为参数调用model层的方法,让model层的方法读取并解释这个vector对象。

  但是现在不想改了,这只是一个毕业设计,能够混过答辩展示就行了。我想用更多的时间多看点别的书,因为毕业后可能更少时间看书了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值