Saya baru mengenal MVC 4 dan saya mencoba menerapkan Kontrol Unggah File di situs web saya. Saya tidak dapat menemukan kesalahan. Saya mendapatkan nilai nol di file saya.
Pengendali:
public class UploadController : BaseController
{
public ActionResult UploadDocument()
{
return View();
}
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
file.SaveAs(path);
}
return RedirectToAction("UploadDocument");
}
}
Melihat:
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="FileUpload" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
asp.net-mvc
file-upload
Liam
sumber
sumber
enctype
formulir pada saya biaya satu jamJawaban:
The
Upload
Metode iniHttpPostedFileBase
parameter harus memiliki nama yang sama dengan yangfile input
.Jadi ubah saja input ini:
Anda juga dapat menemukan file di
Request.Files
:sumber
Index out of bounds
pengecualian jika tidak ada file dalamRequest.Files
koleksi ..?ArgumentOutOfRangeException
, tetapi Anda benar, saya memperbaruiviewmodel
properti Anda bernamaAgentPhoto
maka Anda harus memiliki yang berikut ini pada pandangan Anda:<input type="file" name="AgentPhoto"/>
var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
, kelas "Server" tidak ditemukan, paket mana yang digunakan?Mengklarifikasi itu. Model:
Pasca Aksi
Akhirnya metode Extension untuk memeriksa hasFile
sumber
Lihat Halaman
file skrip
Di Kontroler
sumber
AJAX
sini.Html.BeginForm
sudah melakukan pekerjaan. AJAX hanya diperlukan jika Anda tidak ingin pengalihan ke<form action=LINK>
Anda hanya perlu mengubah nama input yang Anda masukkan karena nama yang sama diperlukan dalam parameter dan nama bidang input cukup ganti baris ini Kode Anda berfungsi dengan baik
sumber
Saya pikir, cara yang lebih baik adalah menggunakan HttpPostedFileBase di controller atau API Anda. Setelah ini, Anda dapat dengan mudah mendeteksi ukuran, jenis, dll.
Properti file dapat Anda temukan di sini:
MVC3 Cara memeriksa apakah HttpPostedFileBase adalah gambar
Misalnya ImageApi:
Semoga ini bisa membantu.
sumber
HttpPostedFileBase
.