0

使用 razor 和 sql server 2012 在 asp mvc3 中构建 Web 应用程序。

我正在进入新的领域,我的研究还没有找到答案。我正在建立一个网站,允许用户创建个人资料并上传图片。当然,我希望有大量用户,所以我将图像保存到文件服务器,并在 db 中有一个链接。但是我从未构建过这样的东西,我正在尝试找出“应用程序到文件服务器”的关系,特别是图像位置的路径。我只是在我的项目文件夹中创建一个文件并将它们存储在那里吗?还是我需要放入一个临时路径,然后在部署后从我的主机获取实际路径?

目前我存储在我的解决方案中:

    [HttpPost]
    public ActionResult ImageUpload(HttpPostedFileBase file)
    {
        string path = Path.Combine(Server.MapPath("~/Images"), Path.GetFileName(file.FileName));
        file.SaveAs(path);
        ViewBag.ImageUploadMessage = "File Uploaded Successfully";

        return View();
    }

假设我在根目录中有一个名为“Images”的文件夹,此代码工作正常,但这对于实时站点似乎不正确。

4

1 回答 1

2

除了在您的应用程序中创建一个目录,您还可以在服务器上创建一个虚拟目录并提供其上传文件的路径,如下所示:

string  path = "/VirtualDirecotryName/";
path = Path.Combine(Server.MapPath(path), fileName);
fileupload.SaveAs(path);

并将对文件的引用存储在数据库中。这就是我在我的应用程序中管理用户个人资料图片的方式,因为我很容易维护,因为文件正在上传到不在应用程序中的单独虚拟目录上。希望这会帮助你。

于 2013-05-01T10:07:37.920 回答