Wie man ein Bild hochlädt und auf derselben Seite in asp.net mvc 4 anzeigt

8

Ich habe eine Webanwendung entwickelt, die asp.net mvc4 und razor verwendet. Ich muss ein Bild hochladen mit Datei-Uploader und auf der gleichen Seite mit Details des Bildes anzeigen.

Als Beispiel gibt es eine "file uploader" und "submit button" in "contact page" meiner Anwendung. Wenn ich ein Bild einer Person und click den Submit-Button hochlade, sollte das Bild irgendwo auf der Seite mit seinen Details wie dem Bildnamen und der Größe angezeigt werden.

Gibt es eine Möglichkeit, das zu erreichen?

Hier ist der Code für meine Controller-Klasse

%Vor%

und hier ist der Code für die Ansicht

%Vor%

aber wie auf der Seite angezeigt werden?

bitte helfen.

    
sanzy 12.06.2013, 08:44
quelle

4 Antworten

16

Sobald Sie die hochgeladene Datei von Ihrer Controller-Aktion auf dem Server gespeichert haben, können Sie die URL an diese Datei zurückgeben, damit sie in einem <img> -Tag angezeigt werden kann:

%Vor%

Machen Sie Ihre Ansicht dann stark typisiert und fügen Sie ein <img> -Tag hinzu, das das Bild anzeigt, wenn das Modell nicht leer ist:

%Vor%     
Darin Dimitrov 12.06.2013, 09:04
quelle
1

Um das hochgeladene Bild auf der Seite anzuzeigen, müssen Sie das Bild irgendwo speichern und dann auf die entsprechende URL im <img> -Tag verweisen.

Wenn Sie die Datei auf dem Datenträger im Website-Speicherort speichern, können Sie auf die URL verweisen, die dem Speicherort entspricht (wenn Sie also die Datei in Img speichern, lautet die relative URL ~/Img/imagename ).

Wenn Sie es in der Datenbank speichern, müssen Sie eine separate Aktionsmethode bereitstellen oder HttpHandler , um es zu erhalten.

    
Andrey Shchekin 12.06.2013 09:04
quelle
1

in HTML:

%Vor%

Javascript / JQuery durch den Typ FileReader

%Vor%

wobei input das <input type="file"> -Element ist Wenn Sie AjaxToolKit AsyncFileUpload verwenden, können Sie die Eingabe mithilfe von fileUploadElement.get_inputFile()

abrufen

Bitte beachten Sie: wie Sie ein Bild vor und anzeigen nach dem Hochladen?

    
quelle
-1

Hier ist der typische Ablauf für so etwas.

  1. Sie beginnen mit der Aktion Index , in der Sie das Fileupload-Steuerelement sehen können.
  2. Das Dateiupload ist in einem Format, das an Ihre FileUpload Aktion gesendet wird.
  3. In deiner FileUpload Aktion machst du dein Ding und am Ende hast du return RedirectToAction("Index");

Jetzt gibt es offensichtlich mehr zu tun. Sie müssen diese Datei irgendwo speichern, sagen wir in einem Verzeichnis namens UploadStuff .

Innerhalb Ihrer Indexaktion lesen Sie das Verzeichnis für Ihre Datei.

Auch hier geht es um dich. In der realen Welt speichern Sie einen Verweis auf diese Datei in einer Datenbank und fragen diese Datenbank anhand eines eindeutigen Bezeichners wie einer userId oder einer productId ab, um herauszufinden, welche hochgeladenen Elemente in der Indexansicht angezeigt werden.

>     
The Muffin Man 12.06.2013 09:03
quelle