本人在外企工作,最近被分配到一个文档管理的模块上去.
由于新的系统全面使用AJAX, 上传文件成为一个很大的问题!
虽然我自己感觉技术还是可以的, 但是我实在不愿意花太多时间去研究如何上传.
可惜不研究行吗? 不研究项目就做不下去, 我就等着炒鱿鱼了.
于是我就到网上去寻找上传文件的方案.
我在博客园和CODEPROJECT都找到一些类似的代码.
自己也不笨, 动手实现一下, 那些代码还真的能工作.
可是好景不长, 测试部门很快就发信息过来, 说我的东西在很多浏览器下都不能用,
而且公司里一个高手还说我的代码有安全隐患, 是什么隐患又说得不清不楚.
结果我就变成了修改别人代码的民工, 花了一个多星期的时间去修修补补,
始终就是不能让这个代码能通过测试...
我跟老大说,, 我累了,, 网上的代码有时的确可以帮忙,, 但是更多的就是折磨人啊!!
老大说,, 你都浪费了一个多星期的时间了,, 这样吧.. 扣你一个星期的人工,, 去买一个控件回来做.
(老大经常都这样说话.. 通常我们自己做不来的东西,, 就立刻改买控件.. 扣人工是说笑的~~)
大公司就是大公司, 预算都很充足的, 关键就是对进度要求非常的高. (公司是大,可是我的薪水...)
一遇到问题就买其他人的东西, 目的就是要别人去帮我们解决问题, 这样项目就不怕拖泥带水了.
其实上传文件的控件真的不是太多.
例如aspnetupload , telerik , powupload , componentart ..等等
来来去去就那么几个公司的产品.
下载下来试用了一下, 都感觉不太好.
原因是:
1. 不喜欢弹出窗口显示进度条. 弹窗口是我们写商业软件的大忌. 而且很多文件上传都很快, 次次都弹个窗口客户会觉得很烦.
2. 处理文件上传的方式很怪异. 很难去传递一些相关的参数.
3. 部署并不是很容易. 有dll, 又有资源文件, 又要改动很多东西.
总之觉得那些并不是控件, 而是APPLICATION. , 不是我调用控件去干什么 ,
而是就好像是拿一些程序回来自己改动一下的那个感觉.
后来问一下同行Peter (一个很NICE的美国佬, 技术不算好, 不过知道的东西挺多的)
他介绍我去尝试一下ajaxuploader.com的东西.
奇怪,这个东西在google几乎查不到, 能是什么好东西啊?
后来知道原来是一个新的产品.
然后我又怕了, 新的产品一般都有一些BUG的...
既然老Peter推荐了.. 我就去试一下....
直接在它的官方网站下载了一个zip文件. 解压, 就有了一大堆的例子.
直接用VS2005打开例子网站, 浏览, 就能WORK了.
这让我好兴奋.. 因为之前找到的东西, 要成功运行可不容易..
既然例子OK, 我就看那些例子的代码 , 也出乎预料的简单..
而更让我兴奋的是 , 那个控件和ASP.NET 自带的UPLOAD很相似,
通过一个FileUploaded的事件, 我知道了客户上传文件, 而且用args得到了这个文件的信息.
比起ASP.NET自带的UPLOAD控件,, 它的特别之处就是支持AJAX!
感觉就是我自己梦寐以求的东西.
因为我的目的就是想有个类似ASP.NET自带控件,而又支持AJAX的东西而已.
很好. 把控件唯一的dll文件复制到我的工程中去. 在页面的指定位置放进它,
关联事件, 处理事件带的文件内容... 一切都好像很简单, 很顺利!!
结果发送去测试部门, 发现了一个小BUG.. 在IE有个错误..
虽然我们还没有买下来, 既然东西是人家做的, 有问题当然找别人..
把BUG报告发了封信过去, 第二天就修正好了..(其实我很敬佩自己的问题描述表达能力!)
再送去测试部门, 一次过验收!!
好了, 我实在不想再花时间在这个问题上了,
花了我一个多星期的上传文件旅程也就在这里结束了.
写下这个文章, 以几年我这个星期的民工经历.