问题描述
我想同时上传两个图片在页面上放了两个FileUP控件.图片的文件名是通过fileup.SaveShow方法中的DateTime.Now.ToString("yyyyMMddhhmmss")生成的.执行顺序是if(FileUpload1.HasFile)//上传图片1{Upfileup=newUp();Fileup=fileup.SaveShow(FileUpload1,model);model.Picture=Fileup;}else{Fileup=string.Empty;model.Picture=Fileup;}if(FileUpload2.HasFile)//上传图片2{Upfileup=newUp();Fileup2=fileup.SaveShow(FileUpload2,model);model.Picture2=Fileup2;}else{Fileup2=string.Empty;model.Picture2=Fileup2;}但是查看上传图片目录的时候.里面就只有一张图片.是FileUpload2中传的.会不会是因为生成的文件名是一样的.而覆盖了.可是我设了断点以后.发现.两个文件名是不一样的.并且两张图都传到了指定的目录..不知道是怎么回事..
解决方案
解决方案二:
设断点以后,时间不一样了啊在文件名里加个1或2分开来吧
解决方案三:
该回复于2008-04-02 18:45:52被版主删除
解决方案四:
那两个文件又不是同时生成的.时间怎么会一样的.第二个图片应该晚一些呀?
解决方案五:
原因是你的上传文件大小的限制,而且他不会报错。什么都不显示。在配置文件加上:<httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="900"/>就OK了。
解决方案六:
stringstrFileNewName=DateTime.Now.ToString("yyyyMMddhhmmss")在这后面再加个随机生成的数字.怎么弄?
解决方案七:
TO:live_7sky那我设了断点以后.为什么两张图片都能传到指定的目录?
解决方案八:
顶一下~~~~~~~
解决方案九:
加个毫秒吧DateTime.Now.ToString("yyyyMmddHHmmssff")
解决方案十:
DateTime.Now.ToString("yyyyMmddHHmmssfff")多个f估计你的服务器不会这么恐怖,一毫秒同时上传2张图片
解决方案十一:
第一个IF最后一个赋值应该是:model.Picture1=Fileup1else里面也是:model.Picture1=Fileup1;试试
解决方案十二:
引用6楼zhuwei1987的回复:
TO:live_7sky那我设了断点以后.为什么两张图片都能传到指定的目录?
这是受上传文件大小的限制,<httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="900"/>默认是4000,至于设置断点,能正确上传,和直接上传,只能上传一张,但是不报错。应该和服务器处理有关,具体的我也没有搞清楚。不知道什么内幕。我以前用3个上传控件,也是遇到你那样的情况,后来在ASP.NET2.0书上,看到解决办法,但是解释得非常模糊。如果你找到原因了,麻烦告诉我一声;E:haijun.qin@gmail.com
解决方案十三:
但是这个问题的解决办法就是:加上:<httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="900"/>如果你很急的话,直接加上这句话,就可以了,至于原因可以以后慢慢研究。
解决方案十四:
该回复于2008-04-02 18:34:41被版主删除
解决方案十五:
你电脑运行速度太快,所以生成的文件名一样fileup.SaveShow方法中的DateTime.Now.ToString("yyyyMMddhhmmss")改为DateTime.Now.Ticks.ToString()如果你的电脑还是那么快...加随机数吧
解决方案:
我来给你分析一下你的这个问题吧:(1)你调试没有问题是因为,你调试的时候时间是仍然在走的,因为你调试的时间大于1秒,所以当你调试的时候,生成的文件名就自然不同了,这样两个图片就可以都传上去了,如果直接执行,因为FileUpload1这个控件是事先讲你要上传的图片组合成二进制数据流,准备好上传前的准备才执行事件的,所以一旦执行事件,速度就很快了,一般的文件是用不了一秒的!(2)至于楼上说<httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="900"/>等等,纯属无稽之谈,这局话是可以设置上传的文件的大小,但是如果要是大的话,根本就通不过FileUpload1的事先组合数据流,根本就不会执行后台的事件了,会直接返回“无法显示该页的”(3)解决办法:你直接在两个生成的文件名前,加两个不同的标识吧!如果还不能解决,在此处留言:http://i.mop.com/ourgoodluck,说明详细问题,本人会在24小时内,写出源码回复给你!
解决方案:
引用15楼newgoodluck的回复:
我来给你分析一下你的这个问题吧:(1)你调试没有问题是因为,你调试的时候时间是仍然在走的,因为你调试的时间大于1秒,所以当你调试的时候,生成的文件名就自然不同了,这样两个图片就可以都传上去了,如果直接执行,因为FileUpload1这个控件是事先讲你要上传的图片组合成二进制数据流,准备好上传前的准备才执行事件的,所以一旦执行事件,速度就很快了,一般的文件是用不了一秒的!(2)至于楼上说<httpRuntimeuseFu…
那为什么同样的2张文件,设置<httpRuntimeuseFullyQualifiedRedirectUrl="true"maxRequestLength="1024000"executionTimeout="900"/>就可以上传2张,不设置就只能上传1张,楼上的解释一下。
解决方案:
最好文件名不要一样,我也碰到过,调试时不容易发现
解决方案:
引用15楼newgoodluck的回复:
我来给你分析一下你的这个问题吧:(1)你调试没有问题是因为,你调试的时候时间是仍然在走的,因为你调试的时间大于1秒,所以当你调试的时候,生成的文件名就自然不同了,这样两个图片就可以都传上去了,如果直接执行,因为FileUpload1这个控件是事先讲你要上传的图片组合成二进制数据流,准备好上传前的准备才执行事件的,所以一旦执行事件,速度就很快了,一般的文件是用不了一秒的!(2)至于楼上说<httpRuntimeuseFull…
首先,这和文件名没有关系,我的图片文件名绝对不一样。就是aa.jpgbb.jpg保存到服务器也是设置的aa.jpgbb.jpg
解决方案:
楼主应该考虑一下上传文件的大小,然后再用上传的当前服务器时间作为上传图片的文件名应该可以避免文件重名的问题
解决方案:
虽然我不是楼主,但是我也很想知道答案。楼主大概不会结贴了。