【发布时间】:2010-12-08 05:48:46
【问题描述】:
fileupload在updatepanel下如何上传图片?
我在更新面板中有一个“上传”按钮。
当我在按钮单击事件中单击该按钮时,我得到了 fileupload hasfile=false。 当文件上传控件在更新面板中并且按钮正在异步回发时,请建议是否有任何方法可以上传图像文件。
提前致谢。
【问题讨论】:
标签: c# asp.net file-upload updatepanel asyncfileupload
fileupload在updatepanel下如何上传图片?
我在更新面板中有一个“上传”按钮。
当我在按钮单击事件中单击该按钮时,我得到了 fileupload hasfile=false。 当文件上传控件在更新面板中并且按钮正在异步回发时,请建议是否有任何方法可以上传图像文件。
提前致谢。
【问题讨论】:
标签: c# asp.net file-upload updatepanel asyncfileupload
可以使用 AJAX AsyncFileUpload 控件
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx
也检查这个线程。 File uploading in AJAX updatepanel without full postback
【讨论】:
这是不可能的。出于安全原因,浏览器不允许 javascript 上传文件。
这个问题有两种正常的解决方法:
我最近用这个工具在我的网页中异步上传文件,效果很好:http://valums.com/ajax-upload/ 它会自动为您创建一个 iFrame,并发布该框架并将生成的 html(或 json 对象)发送到事件处理程序。我的页面接收上传的文件,返回一个描述文件的 json 对象,例如文件名和唯一 ID,以便我可以将发布在主页上的数据链接到上传的文件。
为了安全起见,我存储了上传文件的用户的凭据,因此当表单发布时,我可以验证发布表单的用户确实是上传文件的用户。
【讨论】:
我试过如下。它正在工作。
<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>
参考
【讨论】:
你可以试试这个代码。我试过了,它对我有用。
<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>
【讨论】: