【发布时间】:2016-09-26 19:48:08
【问题描述】:
最终,我尝试通过 MVC .NET 网站将用户文件系统中的文档上传到使用服务帐户的 Google Drive。
我不确定我是否正在实施适当的设计来完成上传,但我对要上传的文件的路径感到困惑。
网络
@Html.TextBox("file", "file", new { type = "file", id = "fileUpload" })
控制器
public ActionResult GoogleDriveList(GoogleDrivePageVM vm, HttpPostedFileBase file)
File _file = new File();
var _uploadFile = System.IO.Path.GetFileName(file.FileName);
byte[] byteArray = System.IO.File.ReadAllBytes(_uploadFile);
ReadAllBytes 语句发生错误。它找不到文件“C:\Program Files (x86)\IIS Express\Map of Universe.txt”。文件名正确但路径不正确。
byte[] byteArray = System.IO.File.ReadAllBytes(_uploadFile);
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
... Google Drive 文件放在这里
然后从流中上传文件。
FilesResource.InsertMediaUpload request = _service.Files.Insert(body, stream, body.MimeType);
request.Upload();
那么,我是否使用 HTML 文件帮助程序走在正确的道路上?如果是这样,让路径正常工作的诀窍是什么?此外,我希望能够支持最大 500 MB 的文件大小(如果有区别的话)。
【问题讨论】:
-
如何解析字符串的文件?如果将文件输入到文本框中,可能需要验证字符串的格式是否正确,以便 ReadAllBytes 正常工作。
-
用户从看起来像 windows 文件资源管理器对话框的文件中选择一个文件。没有输入文件名的选项。文件名显示“Map of Universe.txt”,这是我选择的文件,但 ReadAllBytes 语句包含虚假路径。
-
请注意,model-view-controller 标签是针对有关模式的问题。 ASP.NET-MVC 实现有一个特定的标记。
标签: c# asp.net-mvc google-drive-api google-api-dotnet-client