带有数据库文件路径插入的ASP.NET文件上载

时间:2014-05-27 09:50:31

标签: c# asp.net database vb.net file-upload

我正在为我的嫂子建立一个摄影网站。我想要做的是使用ASP.NET上传控件。我发现了另一个帖子,它有如何做文件上传方面的事情。但是,该网站将有一个数据库后端(SQL Server 2012),我想要做的是将文件路径(包括文件名和类型)写入数据库,以便当客户登录数据库时将显示所有图像已分配给该客户的。因此文件位置字段将包含类似../ images / custName / test.jpg

的内容

任何人都有任何想法如何做到这一点?我想到的另一个选择是只存储该客户的文件夹位置,然后撤回该文件夹中的所有图像,但我认为这种方法效率较低。

我非常(非常!)是ASP.NET的新手,所以任何帮助都会受到极大的欢迎。如果解决方案是在C#或VB.NET中(我正试图学习这两种方法),不要太慌张。

更新

数据库架构如下所示:

[Cust].[CustImages](
    [ImageID] [int] NOT NULL PK,
    [CustomerId] [int] NOT NULL,
    [ProjectId] [int] NOT NULL,
    [ImageFilePath] [varchar](100) NOT NULL,

CustomerId是Customer表中的FK,因此客户只能看到与其关联的照片。 ProjectId也是项目表的FK,这个表需要打破客户和CustImage之间的M:M关系。

所以会发生什么是摄影师会出去拍照,然后回家并根据需要进行编辑,然后将它们上传到网站,他们将使用的表格将包含客户和相关项目的列表。摄影师将选择客户和项目,然后上传图像。

在看到一些响应之后,我将创建一个存储过程,它将customerId,ProejectId和ImageFilePath作为参数,并将详细信息插入数据库。

我不知道如何获取ImageFilePath以便我可以将其传递给存储过程。

由于

亚历

2 个答案:

答案 0 :(得分:0)

您必须在SQL Server中创建一个表,您将在其中存储上载的日志记录。客户上传文件后,您将调用插入存储过程,该过程将所需的日志数据写入前一个表。

答案 1 :(得分:0)

我想你会使用asp.net网页表单。首先,您将使用FileUpload将aspx文件中的上传html元素呈现为<asp:FileUpload runat="server" ID="FupImage"/>

当您提交webform时(通常在单击提交按钮时),aspx.cs文件中的事件处理程序方法将处理按钮单击事件。我建议您将文件保存在正在运行的网站可访问的其他位置。最重要的是,我建议你调用一个存储过程来保存该表中图像的新路径如果你有一个名为BtnUpload的按钮,下面的代码将允许你获取文件路径:

    protected void BtnUpload_Click(object sender, EventArgs e)
    {

        String newFileName = String.Concat(yourNewPath, this.FupVendeur.FileName);

        this.FupVendeur.SaveAs(newFileName);

        YourDataServiceLayer.SaveFileName(newFileName);


    }

我使用Microsoft Enterprise Library执行所有数据库操作。