Mvc 3 De De Téléchargement D'Images De La Galerie
J'ai mis en place un upload de fichier pour les images à l'aide de ASP.NET Mvc 3 et la Microsoft.Web.Les aides de package NuGet. La mise en œuvre est très simple puisqu'il vous permet de rechercher un fichier et de le télécharger dans un répertoire spécifié.
Voici ce que j'ai pour mon image télécharger la solution à l'aide de ASP.NET MVC 3 et Microsoft.Web.Les aides NuGet plugin.
Maintenant la ViewModel code
namespace MvcImageUpload.Models {
public class ImageUploadViewModel {
[UIHint("UploadedImage")]
public string ImageUrl { get; set; }
public string ImageAltText { get; set; }
}
}
Maintenant, pour la contrôleur j'ai tout simplement abandonné ce dans le contrôleur de la Maison, puisque c'est juste une maquette du projet pour le faire fonctionner. J'ai juste ajouté un ActionResult
qui prend un ImageUploadViewModel en tant que paramètre.
public ActionResult Upload(ImageUploadViewModel model) {
var image = WebImage.GetImageFromRequest();
if (image != null) {
if (image.Width > 500) {
image.Resize(500, ((500 * image.Height) / image.Width));
}
var filename = Path.GetFileName(image.FileName);
image.Save(Path.Combine("../Uploads/Images", filename));
filename = Path.Combine("~/Uploads/Images", filename);
model.ImageUrl = Url.Content(filename);
model.ImageAltText = image.FileName.Substring(0, image.FileName.Length - 4);
}
return View("Index", model);
}
Mon point de vue pour le téléchargement d'images est simple, il a une Html.BeginForm, qui gère le formulaire de publication de la méthode et a le type d'encodage du jeu d'être "multipart/form-data".
Puis à L'aide de Microsoft.Web.Les aides.FileUpload aide, je demande une image à partir de l'adresse HTTP post et ensuite l'afficher à l'aide personnalisée méthode displayfor modèle, appelé " ImageViewer.
@model MvcImageUpload.Models.ImageUploadViewModel
@using Microsoft.Web.Helpers;
@{
ViewBag.Title = "Index";
}
<h2>Image Uploader</h2>
@using (Html.BeginForm("Upload", "Home", FormMethod.Post,
new { @encType = "multipart/form-data" })) {
@FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false,
includeFormTag: false, addText: "Add Files", uploadText: "Upload File") <br />
<input type="submit" name="submit"
value="Upload Image" text="Upload Images"
style="font-size: .9em;" />
@Html.DisplayFor(x => x, "ImageViewer")<br />
}
Voici ce que la coutume DisplayTemplate ressemble
@model MvcImageUpload.Models.ImageUploadViewModel
@if (Model != null) {
<h4 style="color:Green;">Upload Success!</h4>
<p>
Alt Text has been set to <strong>@Model.ImageAltText</strong>
</p>
<img style="padding: 20px;"
src="@(String.IsNullOrEmpty(Model.ImageUrl) ? "" : Model.ImageUrl)"
id="uploadedImage" alt="@Model.ImageAltText"/>
}
Ce tous les ouvrages et l'image est téléchargée avec succès à l' /Uploads/Images/nom de fichier.extension sur le post de formulaire.
Ma question
Comment j'ai maintenant un autre affichage de toutes les images dans ce répertoire, paginé et être en mesure de sélectionner et de supprimer et de l'image, à partir de la vue et de l'annuaire?
Je sais aussi que le Microsoft.Web.Les aides.FileUpload, prend en charge le téléchargement de plusieurs fichiers, mais je ne trouve pas comment mettre en œuvre des ce avec ma solution actuelle. Toute aide serait grandement appriceated.
OriginalL'auteur Carl Weis | 2011-05-17
Vous devez vous connecter pour publier un commentaire.
Après vous cliquez sur le bouton Charger Image, le système doit appeler la méthode qui utilise
Request
pour obtenir le fichier.Espérons que cette aide.
OriginalL'auteur Beginner
ce que vous demandez à l'aspect plutôt de la mise en œuvre à moi, alors une requête....
à Afficher:
Extraire toutes les images à partir de votre Uploads/Images annuaire DirectoryInfo... vous pouvez rechercher un répertoire basé sur une extension, puis il vous donnera un ensemble de résultats, vous pouvez itérer.....
Créer une vue qui affiche tous les enregistrements comme des liens d'Image et de contrôleur de chercher le jeu de résultats à ce point de Vue.... Lier les enregistrements que vous souhaitez afficher dans votre point de VUE...
et vous pouvez mettre en œuvre vous supprimez logique à l'aide d'Ajax ou par la poste arrière dépend de la façon dont vous le voulez....
Asp.net MVC Vues suivant ce tutoriel et il vous permettra de passer par ce....
mais encore une fois ce que vous demandez est plus comme de la mise en œuvre du Code n'importe quelle question....
Aussi, j'ai posté ceci pour aider les personnes qui pourraient avoir besoin de savoir comment faire pour télécharger des fichiers en utilisant mvc 3.
j'ai updaed ma réponse et ajouté un lien vers quelques tutoriaux qui vous aideront dans la création de cette....
Merci pour l'information, je vais donner un coup de feu. 🙂
OriginalL'auteur Usman Masood
La démarche que j'ai suivie précédemment, est de conserver les informations d'un fichier dans une base de données(ou tout ce qui est approprié). par exemple, chemin d'accès, nom de fichier, type de contenu, la taille du fichier.
Cela vous donne plus de flexibilité lors de l'édition (alt texte, le titre, la description, la relation avec d'autres objets).
Télécharger/visualiser les fichiers peuvent ensuite être traitées basée sur la convention de chemin d'accès, par la création d'un ViewImage contrôleur qui obtient juste une id de l'image en tant que paramètre.
Vous pouvez ensuite créer une url à partir du chemin d'accès au fichier et vous ne devez définir le type de contenu.
IIS ensuite fait le reste.
OriginalL'auteur AyKarsi