0

我想使用客户端代码设置图像控件的图像 URL,并使用 C# 代码将图像保存到服务器。这是我已经实现的:

<asp:Button ID="btnImageUpload" OnClick="btnImageUpload_Click"  runat="server" Text="Preview" CausesValidation="false" OnClientClick="Image_View();"/>

C#代码:

protected void btnImageUpload_Click(object sender, EventArgs e)
{
    if (Directory.Exists(@"C:\\Images"))
        SaveImage_Server();
    else
    {
        Directory.CreateDirectory(@"C:\\Images");
        SaveImage_Server();
    }
}
    public void SaveImage_Server()
    {
        try
        {
            if (FlUpldImage.PostedFile.ContentLength > 0)
            {
                String fn = Convert.ToString(DateTime.Now) + Path.GetFileName(FlUpldImage.FileName);
                if (fn.Contains('/'))
                {
                    fn = fn.Replace("/", "");
                }
                if (fn.Contains(':'))
                {
                    fn = fn.Replace(":", "");
                }
                if (fn.Contains(" "))
                {
                    fn = fn.Replace(" ", "");
                }
                String Saved_ImagePath = @"C://Images/" + fn; // making the path with created dynamically folder name
                FlUpldImage.SaveAs(Saved_ImagePath);
                HidnLocalImageURL.Value = Saved_ImagePath;

            }
        }
        catch (Exception re)
        { 
        }
    }

JavaScript

    function Image_View() {
//        __doPostBack('<%= btnImageUpload.ClientID %>', '');

//        var clickButton = document.getElementById("<%= btnImageUpload.ClientID %>");
//        clickButton.click()

        var idFlUpload = '<%= FlUpldImage.ClientID %>';
        var fu1 = document.getElementById(idFlUpload);
        var idImgCntrl = '<%= imgCorrect.ClientID %>';
        var ImgCntrl = document.getElementById(idImgCntrl);

        alert("You selected " + fu1.value);
        ImgCntrl.setAttribute('src', fu1.value);
    }

现在我的问题是,一旦执行服务器端代码,页面就会刷新,并且使用 JS 设置为图像控件的链接会重置为默认值。

我怎样才能得到这个工作,其中图像也被保存,图像 URL 属性也通过 JS 设置。

如果有任何其他方法可以实现这一点,请告诉我。提前致谢!

4

1 回答 1

0

您也必须在服务器上设置它。您可以使用隐藏字段保存 url 并访问服务器上的隐藏字段以获取设置 mgCntrl.ImageUrl 的 url

在 html 中

<input type="hidden" runat="server" id="hdnImageSrc" />

在客户端 javascript

hdnImageSrc = document.getElementById('<%= hdnImageSrc.ClientID %>');
mgCntrl.setAttribute('src', fu1.value);
hdnImageSrc.value = fu1.value;

在服务器端代码

mgCntrl.ImageUrl = hdnImageSrc.Value;
于 2012-08-11T07:17:44.120 回答