【问题标题】:Setting file path for saved images in code, to correspond with hosting server location在代码中设置保存图像的文件路径,以与托管服务器位置相对应
【发布时间】:2013-04-22 10:37:47
【问题描述】:

使用 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”的文件夹,此代码工作正常,但这对于实时站点来说似乎不正确。

【问题讨论】:

  • 试过了还是不行?
  • 试过什么?问题本质上是,当将图像存储在文件系统而不是数据库中时,它是如何工作的?我是否在我的 vs 解决方案中创建一个文件夹?还是在我的 C 盘上创建一个文件夹,然后在启动时将该文件夹复制到托管服务器?

标签: asp.net-mvc image file-upload


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多