注册 登录
编程论坛 ASP.NET技术论坛

无刷新上传大文件并实时显示上传进度

青格儿 发布于 2008-11-20 12:55, 2832 次点击
无刷新上传大文件并实时显示上传进度,这种效果怎么做?嗯,支持上传多个文件的呢?
12 回复
#2
青格儿2008-11-20 19:36
嗯,我查了,网上基本都是用JS+Ajax实现的,可是我试了又试,总有一句:
parent.uploading(document.getElementById("<%=file1.ClientID %>").value,'<%=itemID %>');
这句报错,说不支持这种写法?怎么会这样?(有人做过吗?我用的IE7,怎么会不支持这种写法呢?那该怎么写?)

另:现在还有个问题:后台写程序通常上传到网站相对根目录的一个文件夹里,也就是 picPath = Server.MapPath("\\upload");嗯,这个文件的路径存到数据库里,我我该怎么存?
如果用绝对路径吧,那网站挂到服务器上后,怎么办,这时路径不全错了?
嗯,用相对路径,那我Gridview里显示时,怎么显示这个链接?
简单来说,就是怎么得到这个网站在浏览器地址栏显示的这个地址+我的相对path(也就是\upload),具体怎么做,请大家帮帮我,路过的朋友帮帮我吧!!!!!
#3
青格儿2008-11-25 17:44
不要沉啊,高手倒是理睬一下,我一人在这自言自语。这个怎么实现,好像ExtJS可以实现?嗯,再问下啊, 在线支付又是怎么做的?谁做过,给个实例学习一下,可以吗?
#4
小仙2008-11-25 19:15
你可以先获得网页的虚拟路径Request.CurrentExecutionFilePath,再通过这个来加上相对路径,这样组成的就是永远不变的相对路径,另外,在线支付据说都是和支付宝还有银行相关的,很少做到那一块,因为那个功能我暂时还不确定。
#5
hebingbing2008-11-25 19:19
这问题真的还不能解决了……
呵呵。青妹妹啊本来想让冰之子给你搞定的,没有想到这家伙也没有给你弄……
两个做法……
1.上传前先获取文件的大小,然后在上传的时候使用HttpWorkerRequest对象获取已经上传了的数据,保存到Session,同时客户端用Ajax的方法请求服务器该Session值,算出百分比,及时设置客户端图片的宽,也就是进度条。这样就好了……
2.直接用别人的东西了,你找找flash上传,有专门的flash来做这个事情的。很简单啊。你去看看QQ空间的相册上传,把你的靓照上传几张,呵呵,她的那个就是用flash来做的。咱论坛的头像上传也是用flash来做的。不过这个我没有用过……
#6
hebingbing2008-11-25 19:25
至于你图片的问题,也很好解决啊,你直接保持相对路径,然后在要获取它绝对路径的时候在加个Server.MapPath不就出来了吗/
在线支付问题那就更简单了,支付宝、宝贝等它都有自己的sdk,很相信的,不用你写代码,直接复制粘贴就好了,不过好像支付宝接口现在不公开了,所以你现在是没有办法用支付宝了,宝贝的话在国内不是很盛行,所以你还是用支付宝吧,让他们中介好了……
#7
hebingbing2008-11-25 19:32
http://i.
#8
hebingbing2008-11-25 19:34
http://
#9
hebingbing2008-11-25 19:36
两种方法我都给你找到了……
看看吧……
#10
青格儿2008-11-25 19:47
谢谢朋友们的回复!
hebingbing: 辛苦辛苦,第一种,冰之子也推荐了,我试了试,没成。第二种的,我去看看
嗯,路径那个问题,已解决了.
支付宝那个,我去再查查,呵呵
#11
kevintang2008-11-27 16:51
第一个问题 有难度!我没写出来!
  第二个问题 好象要银行的接口的!
   具体 我也没做过在线支付的项目!
    大多数在线支付的都是JAVA做的!
     原因是JAVA的安全性比.NET高!
#12
kevintang2008-12-01 15:25
继续顶!  
#13
青格儿2008-12-10 21:19
嗯,发现用ComponentArt_UI中的upload可以实现这个效果。可是,不知怎么它是怎么配置的?我直接拉它在页面上,看它的demo,无法切换到设计视图。各位用过ComponentArt的朋友们,它的控件怎么用?我怎么用不了它?我的是VS2005 我下的ComponentArt也是找的.net 2.0的。
只有本站会员才能查看附件,请 登录


[[it] 本帖最后由 青格儿 于 2008-12-10 21:24 编辑 [/it]]
1