将jpg图片保存到我的网络表单中并将其链接到我的数据库吗?

时间:2019-05-17 08:34:06

标签: c# asp.net sql-server visual-studio-2015 webforms

我已经建立了一个供员工输入数据的网络表单,该表单通过我创建的数据库连接到SQL测试服务器。现在,我想从用户计算机(目录)上载一个图像(.jpg),并将图像到服务器路径(目前在我的计算机上)保存到我指定的文件夹中,然后将该路径保存到服务器/数据库。另外在保存时,如何在文件名中附加员工ID?

使用Visual Studio 2015,我已经创建了一个文件上传按钮和onclick按钮来保存所有内容。当我通过浏览器(firefox)运行程序时,它似乎运行顺利,没有错误。诊断工具向我显示了ASP.NET:“保存状态已完成” / WebF。

运行后,当我将鼠标悬停在某些文本上时,它表明某些部分已经起作用,直到:

if (FileUpload1.HasFile)

我已经在该网站上检查了不同的解决方案,但它们似乎无法正常工作。例如image.save();image.saveAs();无效。也许我做错了,但我还不了解C#。

我使用了Microsoft docs .net帮助页面中的示例,但这似乎无法完全正常工作。

这是我从Microsoft .net帮助页面获得的代码。

protected void UploadButton_Click(object sender, EventArgs e)
{
    string saveDir = @"~\Visual Studio 2015\Projects\EMPMIS\PASSPORTS";

    string MainPath = Request.PhysicalApplicationPath;

    string EMPLOYEEID = TXTEMPID.Text;
    string UserFile = FileUpload1.FileName;

    if (FileUpload1.HasFile)
    {
        string savePath = MainPath + EMPLOYEEID + Server.HtmlEncode(UserFile);

        // Append the name of the file to upload to the path.
        //string EMPLOYEEID = TXTEMPID.Text;
        // savePath += fileName + EMPLOYEEID;

        FileUpload1.SaveAs(savePath);

        UploadStatusLabel.Text = "Your file was saved as " + UserFile;
    }
    else
    {
        UploadStatusLabel.Text = "You did not specify a file to upload.";
    }
}

编辑 解决方案是将saveDir路径更改为绝对路径而不是相对路径,这解决了我的问题。

字符串saveDir = @“ C:... \ Visual Studio 2015 \ Projects \ EMPMIS \ PASSPORTS”;

1 个答案:

答案 0 :(得分:0)

  <asp:Label ID="lblmsg" runat="server" Style="color: black; font-weight: bold; font-size: large;"
                        Text="Image Uploaded." />
                         <asp:FileUpload ID="fupidproof" runat="server" />
  <asp:HiddenField ID="hdidproof" runat="server" />
   <asp:Button ID="btnidproof" runat="server" Text="Upload" Style="background-color: darkcyan;
                                            color: white;" OnClick="btnidproof_Click" />

 --------------------------------aspx.cs code---------------------
  protected void btnidproof_Click(object sender, EventArgs e)
    {
            string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            SqlConnection con = new SqlConnection(str);
            cmd.CommandType = CommandType.StoredProcedure;
             SqlCommand cmd = new SqlCommand("ProcedureName", con);

            string logopath = "";
            if (fupidproof.HasFile)
            {
                logopath = "~//Kycimg//" + Guid.NewGuid() + fupidproof.FileName;
                hdidproof.Value = logopath.ToString();
                fupidproof.SaveAs(Server.MapPath(logopath));
            }
            cmd.Parameters.AddWithValue("@Image", hdidproof.Value, SqlDbType.VarChar);
            cmd.ExecuteNonQuery();
            lblMessage.Text = "Image has been Uploaded Successfully";


    }