0

我必须先预览图像,然后将其保存到数据库。在多次尝试隐藏“Ajax fileUpload 控件的文本框”之后,我接受了这个简单的建议 - 使用 html fileupload 控件,隐藏它,但使用 asp 按钮来调用 html 控件。到目前为止一切正常。

ASPX:

<asp:Panel ID="pnlImage" runat="server" Height="120px" Width="120px"> 
   <asp:Image ID="imageBox" runat="server"/>                      
</asp:Panel>

<input type="file" id="selectedFile" name="_selectedFile"/> //will hide this later
<asp:Button ID="btnBrowse" runat="server" Text="Browse" CausesValidation="false" 
 OnClientClick="document.getElementById('selectedFile').click(); return false;"
 onclick="btnBrowse_Click" />

CS:

protected void btnBrowse_Click(object sender, EventArgs e)
{
    string strValue = Page.Request.Form["_selectedFile"].ToString();        
}

当我单击浏览按钮时,我会弹出浏览文件。选择图片后,本地路径“C:\pictures.....”填充到 Html 控件的文本框中。

  1. 但是这里的问题是,它没有去后面的代码(因为return:false)。如果我说 return:true,它确实如此,但本地路径只是闪烁并从文本框中消失。所以 strValue 是空的。!

  2. 我也尝试过,设置原因验证并返回 true。为此,我必须填写所有其他要求。页面上的字段。虽然它隐藏了代码,但 strValue 只有名称(user1.jpg)而不是路径。

我发现这种方法比其他 javascript/jquery 简单。我应该如何从这里开始。

4

2 回答 2

0

看看这个Previewing Image in ASP NET Image Control using Cs ...这是提供图像预览功能的一种非常简洁的方法。

于 2013-08-20T09:18:54.297 回答
0

当您返回 false 时,按钮肯定不会单击,当您返回 true 时,按钮会单击,但来自客户端输入控件的值将丢失。看看这个: Retaining Control/Elements values changed via Client side on postbacks

于 2013-08-20T09:10:10.407 回答