簡體   English   中英

使用AsyncFileUpload Control上傳文件並存儲

[英]Upload a file using AsyncFileUpload Control and store it

我正在做一個項目:

Front end - Visual Studio 2010

Technology : C#

Back end - Sql Server 2005

我正在嘗試使用AsyncFileUpload Control上傳文件並將其存儲到“〜/ Image /”文件夾中。

劇本:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
            onuploadedcomplete="AsyncFileUpload1_UploadedComplete"/>
    </ContentTemplate>

背后的代碼:

protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    if (AsyncFileUpload1.HasFile)
    {
        AsyncFileUpload1.SaveAs("~/Image/" + AsyncFileUpload1.FileName);
        Label2.Text = "Recieved " + AsyncFileUpload1.FileName + " Content Type" + AsyncFileUpload1.PostedFile.ContentType;
    }
}

但每次顯示運行時錯誤稱為:

The SaveAs method is configured to require a rooted path, and the path '~\Image\Filename.jpg' is not rooted.

我可以知道錯誤及其解決方法嗎?

提前致謝,

尼基爾

 String path = "~/Image/" + FileUpload1.FileName;

應該是這樣的:

 String path = Server.MapPath("~/Image/") + FileUpload1.FileName;

我想到了:

table width="100%" style="font: 8pt verdana">
                <tr width="100%">
                <td width="40%">
                    <asp:FileUpload ID="FileUpload1" runat="server" />
                    <asp:HiddenField ID="HiddenField1" runat="server" />
                </td>
                <td width="40%"><asp:Label ID="lblPicStatus" runat="server"></asp:Label></td>
                <td>
                <asp:Button ID="Button2" runat="server" Text="Upload" BackColor="White" 
                        BorderColor="#507CD1" BorderStyle="Solid" BorderWidth="1px" 
                        onclick="Button2_Click"/></td>
                </tr>
</table>

背后的代碼

protected void Button2_Click(object sender, EventArgs e)
{

    try
    {
        con.Open();
        if (FileUpload1.HasFile)
        {
            String fileExt = Path.GetExtension(FileUpload1.FileName);
            if (fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".bmp" || fileExt == ".jpeg" || fileExt == ".png")
            {
                String path = "~/Image/" + FileUpload1.FileName;
                cmd.CommandText = "update " + HttpContext.Current.User.Identity.Name + " set image = '" + path + "'";
                cmd.Connection = con;
                cmd.ExecuteNonQuery();
                FileUpload1.SaveAs(Server.MapPath("~/Image/") + FileUpload1.FileName);
                Response.Redirect(Request.RawUrl);
            }
            else
            {
                lblPicStatus.Text = "File to be uploaded is not an image";
            }
            con.Close();
        }
    }

    catch (Exception a)
    {
        Response.Write(a.Message);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM