Jetez un coup d'œil à mon article sur le téléchargement de l'image ou vous pouvez utiliser le même code décrit ci-dessous ;
votre code de vue ;
@using (Html.BeginForm("FileUpload", "Home", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<label for="file">Upload Image:</label>
<input type="file" name="file" id="file" style="width: 100%;" />
<input type="submit" value="Upload" class="submit" />
}
votre contrôleur devrait avoir une méthode d'action qui accepterait HttpPostedFileBase
;
public ActionResult FileUpload(HttpPostedFileBase file)
{
if (file != null)
{
string pic = System.IO.Path.GetFileName(file.FileName);
string path = System.IO.Path.Combine(
Server.MapPath("~/images/profile"), pic);
// file is uploaded
file.SaveAs(path);
// save the image path path to the database or you can send image
// directly to database
// in-case if you want to store byte[] ie. for DB
using (MemoryStream ms = new MemoryStream())
{
file.InputStream.CopyTo(ms);
byte[] array = ms.GetBuffer();
}
}
// after successfully uploading redirect the user
return RedirectToAction("actionname", "controller name");
}
Toutefois, si vous voulez en savoir plus... essayez cet article ; http://www.codeproject.com/Articles/442515/Uploading-and-returning-files-in-ASP-NET-MVC
Mise à jour 1
Si vous voulez télécharger des fichiers en utilisant jQuery de manière asynchrone, essayez cet article.
http://hayageek.com/jquery-multiple-file-upload/
le code pour gérer le côté serveur (pour le téléchargement multiple) est ;
try
{
HttpFileCollection hfc = HttpContext.Current.Request.Files;
string path = "/content/files/contact/";
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
string fileName = "";
if (Request.Browser.Browser == "IE")
{
fileName = Path.GetFileName(hpf.FileName);
}
else
{
fileName = hpf.FileName;
}
string fullPathWithFileName = path + fileName;
hpf.SaveAs(Server.MapPath(fullPathWithFileName));
}
}
}
catch (Exception ex)
{
throw ex;
}
ce contrôle renvoie également le nom de l'image (dans un appel javascript) que vous pouvez utiliser pour afficher l'image dans le DOM.
MISE À JOUR 2
Vous pouvez également essayer Téléchargements de fichiers asynchrones en MVC 4 ;
http://weblogs.asp.net/bryansampica/archive/2013/01/15/AsyncMVCFileUpload.aspx
6 votes
Si vous suivez
Pro ASP MVC 4
le siteSportsStore Tutorial
couvre cette question à partir dupage 292
0 votes
Tu as raison. Je n'avais même pas remarqué. Je cherchais un chapitre à ce sujet. Merci
2 votes
Je sais que c'est pour MVC 4, mais cette question apparaîtra quand même si vous cherchez pour MVC 5 - J'ai trouvé un excellent tutoriel qui couvre à la fois le téléchargement vers une base de données et le téléchargement vers un serveur de fichiers dans Mvc 5 en utilisant EF 6 sur MikesDotNetting. mikesdotnetting.com/article/259/
0 votes
Le chapitre du livre traite du téléchargement d'images vers la base de données. La plupart des gens souhaitent enregistrer le chemin d'accès à la base de données et l'image dans un dossier.