我有 <label>File Path</label>
<table>
<tr>
<td>@Html.TextBoxFor(m => m.filePath, new { type = "file", @class = "input-file" }) )</td>
<td> </td>
</tr>
</table>
带有浏览按钮,我要选择文件的任何位置并使用路径读取文件内容,然后处理内容。
在本地工作正常,但是当作为Web应用程序在azure上发布时,很明显它无法获取文件系统路径,但是如何处理呢?
找不到文件'D:\ Windows \ system32 \ mydata.json'。
Index.cshtml
private static void Test(string filepath)
{
string data = System.IO.File.ReadAllText(filepath);
JArray array = JArray.Parse(data);
HomeController.cs
LAST_DDL_TIME Timestamp for the last modification of the object and dependent objects resulting from a DDL statement (including grants and revokes)
TIMESTAMP Timestamp for the specification of the object (character data)
答案 0 :(得分:2)
在Azure上,进程的当前工作目录为D:\Windows\system32\
,请尝试var wholePath = Path.Combine(Server.MapPath("~/"), filepath);
在Web根目录下找到文件。
更新
将HttpPostedFileBase
字段添加到模型中。在您的视图中,更改为m => m.File
。
public class FileModel
{
public HttpPostedFileBase File { get; set; }
}
在控制器中
public ActionResult FileUpload(FileModel fileModel)
{
if (ModelState.IsValid)
{
StreamReader s = new StreamReader(fileModel.File.InputStream);
JArray array = JArray.Parse(s.ReadToEnd());
...
}
return View();
}
答案 1 :(得分:1)
您正在尝试使用在服务器上执行的代码读取客户端计算机上的 文件。那行不通。您的服务器无权访问客户端计算机中的文件。
看看HttpPostedFileBase上传文件。