事情很严重,我用html的file上传图片先前很好,加入ajax后file.value全部为空了 事情很严重,我用html的file上传图片先前很好,加入ajax后file.value全部为空了 (ajaxcontroltookit updatepandel)如何是好,求救中... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用AJAX實現上傳我也試過好多種方法了,可是一次都沒有成功過.我找過好多的資料也沒有找到.所以你還是不用多想,用老方法做吧! 出于安全考虑,file控件必须是手动入力才可以。不能用javascript给file控件传值,设了也没用的 好好的做什么ajax上传,如果用js来实现,不安全的因素太多了,实际上还是用cs来实现的,最多做一个ajax的假象没有什么意义的,而且js也不太好实现,需要客户端浏览器方面的配合。 ajaxcontroltookit updatepandel数据流、io流无法做到客户端异步 那惨了,俺那么多页面都加了这个鬼玩意,现在返回??? 又没有用svn或vss,惨了惨了惨了 .... ajax异步传输文件路径,文件上传组件已经失效 http://www.cnblogs.com/huacn/archive/2007/07/16/ajax_upload_javascript_js_wushuaxing_jquery.html这里有个局部刷新上传的方法... html的file这个控件要转化为服务器的,但是如果用了AJAX在传回来的话,这个控件就会变成没有实例化对象,使用起来的关注这一点 反正我试过上传控件必须是你点上传按钮才能给file.value赋值,没法通过程序比如javascript代码给其赋值 而且我还试过隐藏上传控件,通过点击一个按钮来模拟点击上传控件的上传按钮,这样也取不到file.value值(file.value值开始有,后来又为空了,即使按钮是html的按钮,又无法通过代码给其赋值) 点击filie的上传按钮可以把得到的value给后面一个img先,然后在提交的时候用img的value不知行不行,不过那样我得修改我的上传类了 你的意思是先用img保存这个value值,然后提交的时候再用img保存的value值来提交?问题就是没法给上传控件赋值啊,file.value值肯定为空,这样你虽然也可以把文件上传到服务器,但保存的只是一个大小为0的空文件,只是文件名和路径和你要的相同 <input id="file1" runat="server" name="file" type="file" onchange="javascript:document.getElementById('image').src=this.value" /><input type="image" src="" id="image" runat="server" style="width: 141px; height: 89px" />点击上传,选中的文件会在image中显示,在通过它的值去上传,就不管file1了啊 18楼的方法正解...在file的onchange事件里面,加上一个JS,将值给另一个隐藏的textbox,直接处理这个隐藏的textbox就OK了...要是客户端禁止JS就没有办法了. 以前用session 和arraylist 尝试保存file的路径session成功,但是项目布置在服务器上有很多问题,最好放弃了,暂时都用刷新的方法做的 因为http post传输没法直接传输二进制流,所以必须将文件转换成其他的编码格式以文本的形式传输给服务器.然而客户端只能通过activex或FSO+ADODB.Stream来读取文件.并且adostream读取的文件是存二进制的.所以还得用代码转换成可以识别的文本串,通常情况下是转换成base64或OP码.然后才能通过POST的方式传送给服务器,当然服务器还得使用相应的解码手段.然而使用js来进行编码操作效率实在... 所以不建议使用ajax进行文件上传如果要进行文件上传可以使用隐藏的iframe完成此类操作. 反正刷新隐藏的xml也属于异步加载的范畴.再配合相应的js也算是ajax了. 创建一个隐藏的iframe,然后把包含上传控件的这个form提交到这个iframe里面才是正道然后如果你要显示进度条的话,可以通过xmlhttprequest每隔一会去访问服务器获取进度再显示到页面上来其他的基本上都是瞎扯 你用ajax上传的时候,传过去的值,只是一个 file.value这个应该可以传过去的;但是,你没有 放到 form type="" 里面,服务器,怎么知道,你传过去的流??? 我现在删除了有图片上传地方的ajax,不过我还是想把它调试出来 楼主:你好!我是一名asp.net的初学者,我也是这个问题,难道这个值的丢失真的和ajax的updatepandel有关系,放这个控件的目的大家都说了是为了防止页面的局部刷新,但是这个控件把要上传文件的值给弄丢了!郁闷啊!关注本贴!看看还有高人指点指点的吗? asp.net页面中嵌套 文档 asp.net如何传值 global 在客户端调用下级控件 vs2005 无法新建网站 如何保持聊天室屏幕始终定位在屏幕最下面? 请帮个忙,.net如何跟flash交互? 大家推荐几个b/s系统 组合查询问题?归求大家帮忙? 为什么打开cshtml马上弹出对话框"failed!"? 我要点击“添加"按钮才执行代码。 请教各位: asp.net动态生成的button控件的触发事件问题 在线等待 请教fdspread控件在winform中实现增删该和全选操作?
所以你還是不用多想,用老方法做吧!
没有什么意义的,而且js也不太好实现,需要客户端浏览器方面的配合。
在file的onchange事件里面,加上一个JS,将值给另一个隐藏的textbox,直接处理这个隐藏的textbox就OK了...要是客户端禁止JS就没有办法了.
然而客户端只能通过activex或FSO+ADODB.Stream来读取文件.并且adostream读取的文件是存二进制的.
所以还得用代码转换成可以识别的文本串,通常情况下是转换成base64或OP码.
然后才能通过POST的方式传送给服务器,当然服务器还得使用相应的解码手段.然而使用js来进行编码操作效率实在... 所以不建议使用ajax进行文件上传
如果要进行文件上传可以使用隐藏的iframe完成此类操作. 反正刷新隐藏的xml也属于异步加载的范畴.再配合相应的js也算是ajax了.
然后如果你要显示进度条的话,可以通过xmlhttprequest每隔一会去访问服务器获取进度再显示到页面上来其他的基本上都是瞎扯
但是,你没有 放到 form type="" 里面,服务器,怎么知道,你传过去的流???