ファイルをアップロードする予定のasp.netでアプリケーションを開発していますが、enctype = "multipart/form-data"を使用するとフォームコレクションは空です私はenctypeを使用していませんが、フォームコレクションにはファイルをアップロードするのに、Request.Files.count = 0という名前が付いています。ファイルのアップロードとフォームコレクションでのアップロードファイルの名前を取得したい。どんな解決策ですか?フォームのコレクションが空です。ファイルのアップロードにenctypeを使用すると
2
A
答えて
0
次は私のために正常に動作します:ファイル入力ファイルをフェッチするために、後にコントローラのアクションで使用されるname
を持たなければならないこと
@using (Html.BeginForm("someaction", "somecontroller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" />
<button type="submit">Upload</button>
}
は注意してください。 Request.File.Count = 0を取得しているという事実は、あなたが入力フィールドに名前を指定しなかったことを強く示しています。
とアクション:
[HttpPost]
public ActionResult SomeAction(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var filename = Path.GetFileName(file.FileName);
filename = Path.Combine(Server.MapPath("~/uploads"), filename);
file.SaveAs(filename);
}
return View();
}
、あなたは(私はお勧めしません)FormCollectionを使用したい場合:
[HttpPost]
public ActionResult SomeAction()
{
var file = Request.Files["file"];
if (file != null && file.ContentLength > 0)
{
var filename = Path.GetFileName(file.FileName);
filename = Path.Combine(Server.MapPath("~/uploads"), filename);
file.SaveAs(filename);
}
return View();
}
またfollowing blog postをチェックアウトすることがあります。
1
次のコードをチェックアウト:
は、コードに従うことによって、ビューの形式でエンコードの種類を追加します。
@using (Html.BeginForm("Create", "Employees", FormMethod.Post,new{ enctype="multipart/form-data"}))
{
@Html.TextBoxFor(model => model.Name)
@Html.TextBoxFor(model => model.Resume, new { type = "file" })
<p>
<input type="submit" value="Save" />
</p>
@Html.ValidationSummary()
}
は、お使いのコントローラのあなたのそれぞれのアクションで
[HttpPost]
public ActionResult Create(EmployeeViewModel viewModel)
{
if (Request.Files.Count > 0)
{
foreach (string file in Request.Files)
{
string pathFile = string.Empty;
if (file != null)
{
string path = string.Empty;
string fileName = string.Empty;
string fullPath = string.Empty;
path = AppDomain.CurrentDomain.BaseDirectory + "directory where you want to upload file";//here give the directory where you want to save your file
if (!System.IO.Directory.Exists(path))//if path do not exit
{
System.IO.Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "directory_name/");//if given directory dont exist, it creates with give directory name
}
fileName = Request.Files[file].FileName;
fullPath = Path.Combine(path, fileName);
if (!System.IO.File.Exists(fullPath))
{
if (fileName != null && fileName.Trim().Length > 0)
{
Request.Files[file].SaveAs(fullPath);
}
}
}
}
}
}
を次のコードを追加します。
私はアサーションされたパスがベースディレクトリのディレクトリの中にあります....ファイルを保存したい場所に自分のパスを与えることができます
0
ものを使用するについて:
@Microsoft.Web.Helpers.FileUpload.GetHtml("File", 1, false, false, null, null)
その後、あなたのコントローラで:
public ActionResult YourAction()
{
Request.Files[0]; //Check this out !
}
さらに詳しい情報:
のStackOverflow:https://stackoverflow.com/a/5060318
Tallanブログ:http://blog.tallan.com/2011/02/04/using-mvc3-razor-helpers-and-jcrop-to-upload-and-crop-images/
関連する問題
- 1. ファイルをASP.Net 5 Web APIにアップロードするとき、IFormFileのコレクションが空です。
- 2. ファイルをアップロードするときにフォームenctype = multipart/form-dataが必要なのはなぜですか?
- 3. .post()とenctype = "multipart/form-data"フォームを使用する
- 4. フォームにenctypeを使用するとイメージ名が取得されない
- 5. なぜフォームのenctypeが使用されましたか?
- 6. FTPファイルのアップロードで空のファイルがアップロードされる
- 7. MVCでangularjを使用してExcelファイルをアップロードする。 HttpPostedFileBaseが空です
- 8. pythonリクエストを使用してフォームにファイルをアップロードする
- 9. Angular 2からDjango Serverにファイルをアップロードするには? (enctype = "multipart/form-data")
- 10. Linuxのコマンドラインを使用してフォームをアップロードしてアップロードするファイル
- 11. CURLを使用してFTPにファイルをアップロードし、PHPが空のファイルをアップロードします。
- 12. PHPとHTMLフォームを使ってownCloudにファイルをアップロードする
- 13. enctype = multipart/form-dataを使用してファイルをアップロード中にエラーが発生しました。エラーはアップロードされたファイルがマルチパートではありません
- 14. フォームとHTMLを使用してサーバーにファイルをアップロードできますか?
- 15. CURLがFTPで空のファイルをアップロード
- 16. コレクションが空です
- 17. フォームなしでvuejsとlaravelを使用してファイルをアップロードする
- 18. codeigniterのフォームにファイルをアップロード
- 19. ファイルをフォームにアップロード
- 20. コレクションが空のときにJAXBでラッパータグを省略する
- 21. フォームのファイルをアップロードするのに、HTMLの代わりにjQueryを使用するのは安全ですか?
- 22. pymongo tailableカーソルを空のコレクションで使用する
- 23. FlaskとBoto3を使ってHTMLフォームからファイルをアップロードする
- 24. AWSアップロード画像で空のファイルがアップロードされる
- 25. Req.fileオブジェクトは、私がHTTP POSTメソッドとのenctype = "multipart/form-data" を使用して流星にファイルをアップロードしようとしている、常にHTTPファイルアップロード
- 26. PHPでフォームからファイルをアップロードする
- 27. フォームからサーバーにファイルをアップロードする
- 28. CodeIgniter - フィールドとファイルのアップロードでフォームを確認する
- 29. Wordpressでカスタム投稿タイプのフォームのenctypeを変更するには?
- 30. S3にアップロードするresqueジョブを使用したCarrierwaveファイルのアップロード