由于临时被调去开发一个web网站,在原来的基础上进行修改,真辛苦啊,还是喜欢一个项目从头到尾跟到底。先稍稍感慨下,现在说说我喷到的问题。
多文件上传,其实很简单,当然了,这里的简单,指的是,什么效果都没有,直接上传,然后提示个上传成功和上传失败。其实我也想就这样简单的完成任务,奈何测试部不通过啊!!!
提了一大堆问题,进度条、异步等,还有页面不够美观。压力好大啊!哎,我做的网站不多啊,还好咱代码看得懂,于是上传找个个“文件上传带进度条的”博客看了下,并自己弄了个小例子,ok,成功了。http://www.cnblogs.com/zengxiangzhan/archive/2010/02/28/1675137.html 文章地址。
现在就要提我碰到的问题,记录下来,预防下次开发碰到。原来是把upload.aspx文件直接放在项目下面,但由于原来的web比较大,我要弄个文件夹,把所有相关的放在一个文件夹里,这个时候,问题出现了。
出现问题的代码: ScriptManager.RegisterStartupScript(this, typeof(upload_aspx), "progress", string.Format(js, fileName), true);。其中upload_aspx,无法找到类型或命名空间,这个问题我现在也还没有解决,把upload.aspx放回项目下,又ok了。
后来发现一点,在项目下的cs类或aspx写C#语言,有个命名空间 “ASP”,然后放在文件夹之后,这个命名空间写无法引用,我现在也不知道怎么引用。当然了,上面那个问题还是解决了,只是换了一种写法。下面介绍下解决方法。
ScriptManager.RegisterStartupScript有4个参数,第二个要的是type,可以换成 fileUpload.GetType(),这样就ok了,一切正常。当然,现在完成的只是文件上传,带进度条。要变成多文件上传,就自己布局下,把单个文件上传弄好点,然后试用<iframe>来把单文件的页面引用进来,再试用js来动态添加<iframe>。效果就出来了:
再把按钮“添加文件”的事件贴出来:
function addFile() {
var div = document.createElement("div");
div.setAttribute("style", "padding: 10px 0; height:200px;");
var f = document.createElement("iframe");
f.setAttribute("style", "height:170px; width:560px;")
f.setAttribute("frameborder", "0")
f.setAttribute("scrolling", "no")
f.setAttribute("src", "../UploadResource/UploadResource.aspx")
div.appendChild(f)
var d = document.createElement("input");
d.setAttribute("type", "button")
d.setAttribute("onclick", "deteFile(this)");
d.setAttribute("value", "移除")
div.appendChild(d)
document.getElementById("_container").appendChild(div);
}
这样,再稍稍调下界面,就完成任务了。不过我自己测试了下,最多只能上传25M,反正再上传30M就会出一些意外,直接卡那,一个上传框卡主,其他的可以各自自己工作,无所谓。也算挺不错的效果了。
9756

被折叠的 条评论
为什么被折叠?



