我正在使用带有剃刀视图的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);
没有找到文件的例外。因为它在服务器内存中搜索。
请帮我找路。
答案 0 :(得分:1)
最好将问题分解成更小的块,你会得到更多的响应。事实上,问题太模糊,没有具体细节。
你需要先读取csv文件(你不会说它是否需要先上传到服务器 - 我想它会这样)
然后你需要迭代csv,找到列出的文件并将它们上传到服务器,你的控制器代码将在那里进行处理&amp;保存到db。
以下是一些可以帮助您入门的链接:
http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/
<强>更新强>
根据您提供的额外细节,我认为不可能按照您建议的方式进行,因为代码无法访问用户的文件系统。
您可以将文件路径添加到模型中,然后在视图中填充文件输入,但您仍然需要以某种方式单击提交按钮 - 也许这可以使用javascript完成?
答案 1 :(得分:-1)
在MVC Here
中解释有关FileUpload的最佳博客这可能不包含针对您的问题的确切解决方案。但我希望这会在一定程度上帮助你。