如果fileupload在updatepanel下,如何上传图片?
我在更新面板中有一个按钮说“上传”。
当我点击按钮点击事件中的那个按钮时,我得到了fileupload hasfile = false。 当fileupload控件位于更新面板内并且按钮正在进行异步后退时,请建议是否有任何方法上传图像文件。
提前致谢。
答案 0 :(得分:1)
您可以使用AJAX AsyncFileUpload控件
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx
同时检查此帖子。 File uploading in AJAX updatepanel without full postback
答案 1 :(得分:1)
这是不可能的。出于安全考虑,浏览器不允许使用javascript上传文件。
此问题有两种正常的解决方法:
我最近应用此工具在我的网页中异步上传文件,并且它可以正常工作:http://valums.com/ajax-upload/ 它会自动为您创建一个iFrame,并发布框架并将生成的html(或json对象)发送到事件处理程序。我的页面接收上传的文件,返回描述文件的json对象,例如文件名和唯一ID,以便我可以将主页上发布的数据链接到上传的文件。
为了安全起见,我存储了上传文件的用户的凭据,因此当发布表单时,我可以验证发布表单的用户确实是上传文件的用户。
答案 2 :(得分:1)
我试过如下。它正在发挥作用。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Upload" runat="server" Text="Upload" OnClick="Upload_Click" /><br />
<asp:Image ID="NormalImage" runat="server" /></ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Upload" />
</Triggers>
</asp:UpdatePanel>
参考
答案 3 :(得分:1)
您可以尝试使用此代码。我尝试过,它在我这边工作。
<asp:ScriptManager runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /> <br/>
<asp:Button ID="btn_Upload" runat="server" Text="Save" OnClick="btn_Upload_Click" /><br />
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btn_Upload" />
</Triggers>
</asp:UpdatePanel>