当fileupload控件在updatepanel下时如何上传图像?

时间:2009-10-20 06:01:44

标签: c# asp.net file-upload updatepanel asyncfileupload

如果fileupload在updatepanel下,如何上传图片?

我在更新面板中有一个按钮说“上传”。

当我点击按钮点击事件中的那个按钮时,我得到了fileupload hasfile = false。 当fileupload控件位于更新面板内并且按钮正在进行异步后退时,请建议是否有任何方法上传图像文件。

提前致谢。

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

这是不可能的。出于安全考虑,浏览器不允许使用javascript上传文件。

此问题有两种正常的解决方法:

  • 在iFrame中执行上传
  • 使用Flash插件上传

我最近应用此工具在我的网页中异步上传文件,并且它可以正常工作: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>

参考

http://www.c-sharpcorner.com/uploadfile/prathore/fileupload-control-in-update-panel-using-Asp-Net-ajax/

答案 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>