最終的に、ユーザーのファイルシステムからMVC .NET Webサイト経由でドキュメントをGoogleドライブ(サービスアカウントを使用する)にアップロードしようとしています。WebユーザーからAPI C#を使用してGoogleドライブにアップロード
アップロードを行うために適切なデザインを実装しているかどうかはわかりませんが、アップロードするファイルのパスがハングアップしています。
ウェブ
@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ステートメントに発生します。 Universe.txtの 'C:¥Program Files(x86)¥IIS Express¥Map'ファイルが見つかりませんでした。ファイル名は正しいが、パスは正しくありません。
byte[] byteArray = System.IO.File.ReadAllBytes(_uploadFile);
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
... Googleドライブのファイルのものがここに
を行くそして、ストリームからファイルをアップロードします。
FilesResource.InsertMediaUpload request = _service.Files.Insert(body, stream, body.MimeType);
request.Upload();
私はHTMLファイルヘルパーを使用して正しいパスを下っていますか?もしそうなら、パスを正しく動かすためのトリックは何ですか?また、最大500 MBのファイルサイズをサポートしたいと考えています(違いがある場合)。
文字列のファイルはどのように解析されていますか?ファイルがテキストボックスに入力されている場合、ReadAllBytesが正しく動作するように文字列が正しくフォーマットされていることを確認する必要があります。 – JDavila
ユーザは、Windowsファイルエクスプローラダイアログのようなものからファイルを選択します。ファイル名を入力するオプションはありません。ファイル名には "Universe.txtのマップ"が表示されますが、これは選択したファイルですが、ReadAllBytesステートメントには偽のパスが含まれています。 – John
model-view-controllerタグはパターンに関する質問のためのものです。 ASP.NET-MVCの実装には特定のタグがあります。 –