ASP MVC:如何保存文件

时间:2016-01-20 09:21:39

标签: asp.net asp.net-mvc asp.net-web-api windows-server-2008

在visual studio中我有以下场景:

一个有两个项目的解决方案:

  • Asp MVC项目
  • Web Api项目

在Asp MVC项目的控制器中,我希望在文件系统中保存文件(已上载)

  1. 哪里必须保存文件?在asp mvc项目里面的文件夹中?
  2. 可以将文件保存在C:\文件系统中的文件夹中。怎么样?
  3. 在web api项目中,我需要向客户端发送asp mvc项目保存的图像。

    1. 如果在asp mvc项目的文件夹内而不是在c:\ file系统中,我如何访问图像?

4 个答案:

答案 0 :(得分:0)

我知道您想要保存图像,而且您不确定应该保存在哪里。如果问题是这样,

  1. 如果有多个服务器,则需要将文件(图像)保存到数据库。因为,如果将图像保存到服务器,则其他人无法访问它们。

  2. 如果只有一台服务器,您可以将它们存储到文件系统。但是,您需要存储有关图像的信息,以便在需要时到达。因此,无论如何你需要数据库。因此,将图像存储到数据库是一个不错的选择。

  3. 我认为this link还可以帮助您将图像文件存储到文件系统和数据库。

答案 1 :(得分:0)

你可以试试这个:

byte[] image = Convert.FromBase64String(pImage);
string assemblyFolder = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
File.WriteAllBytes(assemblyFolder + @"\" + "fileName", image);

答案 2 :(得分:0)

  1. 是的,只要您对该文件夹具有写入权限,就可以将文件保存在项目中。
  2. 2。 要将文件保存在位置控制器中,您可以执行以下操作; (在html侧输入类型需要是文件)

    [HttpPost]
            public void UploadFile(HttpPostedFileBase file)
            {
                if (file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    var path = Path.Combine(serverPath, fileName);
                    file.SaveAs(path);
                }
            }
    
    1. 如果您从其他应用程序访问该文件,我的建议是将文件保存在公共文件夹(可能是常见的网络文件系统)中。您可能有访问权限问题。

答案 3 :(得分:0)

是的,这是可能的
第1步
在控制器中创建任何操作方法名称
第2步
写下面的代码

public ActionResult File(HttpPostedFileBase file)
        {
            try
            {
                string path = @"C:\File_Upload\";
                if (file != null)
                {
                    file.SaveAs(path + file.FileName);
                    return View();
                }
                else
                {
                    return View();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }                     
        }

文件:是您的操作方法名称,您可以将文件保存在指定路径中
HttpPostedFileBase

The HttpPostedFileBase class is an abstract class that contains the same members as the HttpPostedFile class. The HttpPostedFileBase class lets you create derived classes that are like the HttpPostedFile class, but that you can customize and that work outside the ASP.NET pipeline. 
第3步
创建视图,该视图是输入文件的存储输入标记
在视图中写下面的代码
view