使用CSV,MVC3和Razor视图将图像批量上传到服务器

时间:2014-02-04 15:29:53

标签: asp.net-mvc-3 csv razor

我正在使用带有剃刀视图的MVC3 Web应用程序。我必须上传csv文件中列出的所有文件。具有文件名和文件路径的CSV文件。

所有文件列表都将存储在MySql中,所有图像都必须上传到服务器中。

请找到我正在遵循的步骤......

我已经迭代了csv,我能够将路径列表添加到数据库..

这里我没有表单中的文件上传控件。所以我无法使用以下代码上传文件。

public ActionResult Index(IEnumerable<HttpPostedFileBase> files) {
   foreach (var file in files) {
      if (file.ContentLength > 0) {
         var fileName = Path.GetFileName(file.FileName);
         var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
         file.SaveAs(path);
      }
   }
  return RedirectToAction("Index");
}

所以我使用下面的代码上传文件。例如,我已经硬编码了文件路径。

                    FileInfo fi = new FileInfo("C:\\Test.jpg");
                    long nFileLen = fi.Length;
                    FileStream rFile = new FileStream("C:\\Test.jpg", FileMode.Open);
                    byte[] myData = new byte[nFileLen];
                    rFile.Read(myData, 0, (int)nFileLen);     

没有找到文件的例外。因为它在服务器内存中搜索。

请帮我找路。

2 个答案:

答案 0 :(得分:1)

最好将问题分解成更小的块,你会得到更多的响应。事实上,问题太模糊,没有具体细节。

你需要先读取csv文件(你不会说它是否需要先上传到服务器 - 我想它会这样)

然后你需要迭代csv,找到列出的文件并将它们上传到服务器,你的控制器代码将在那里进行处理&amp;保存到db。

以下是一些可以帮助您入门的链接:

MVC 4 Razor File Upload

http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/

<强>更新

根据您提供的额外细节,我认为不可能按照您建议的方式进行,因为代码无法访问用户的文件系统。
您可以将文件路径添加到模型中,然后在视图中填充文件输入,但您仍然需要以某种方式单击提交按钮 - 也许这可以使用javascript完成?

答案 1 :(得分:-1)

在MVC Here

中解释有关FileUpload的最佳博客

这可能不包含针对您的问题的确切解决方案。但我希望这会在一定程度上帮助你。