#

Asp.Net: File Upload Code Beispiel, C#, Html

 

Dieses Beispiel zeigt wie man in Asp.net core mvc eine Datei hochlädt und im User-Verzeichnis speichert

 

In einem File-Dialog im Browser kann man eine Datei auswählen

 

Man kann eine Datei einzeln auswählen und beim Einstellen der Ansicht auf große Bildvorschau werden die Datei-Inhalte optimal dargestellt.

Die Datei-Auswahl wird mit dem Öffnen Button übernommen.

 

Anschliessend wird beim Upload Button die Datei vom Client-Browser hochgeladen zum IIS Server und im Zielverzeichnis wwwroot/User_Files/Images abgelegt.

 

 

C# Code-Beschreibung

 

Für die Beispiel Anwendung wird ein Image Controller erstellt

public class ImageController : Controller

 

Das Formular wird geöffnet mit

[HttpGet] //1.Load

public IActionResult Upload_Image()

 

Die Datei wird vom Formular hochgeladen auf

 

[HttpPost] //Postback

public async Task<IActionResult> Upload_Image(IFormFile file)

 

 

Aus dem Upload wird der Paramert IFormFile übernommen

IFormFile file

 

.. auf den Filename geprüft und anschliessend im System gespeichert

            //< check >

            if (file == null || file.Length == 0) return Content("file not selected");

            //</ check >

 

            //< get Path >

            string path_Root = _appEnvironment.WebRootPath;

            string path_to_Images = path_Root + "\\User_Files\\Images\\" + file.FileName;

            //</ get Path >

 

            //< Copy File to Target >

            using (var stream = new FileStream(path_to_Images, FileMode.Create))

            {

                await file.CopyToAsync(stream);

            }

            //</ Copy File to Target >

 

 

Beispiel Mit: Asp.Net Core 2

 

Image Controller: Upload_Image Task als Postback

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.IO;                    //*Directory

using Microsoft.AspNetCore.Http;    //*IFormFile

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Hosting; //*get RootPath

 

namespace IWois_Core.Controllers

{

    public class ImageController : Controller

    {

 

        private readonly IHostingEnvironment _appEnvironment;

        public ImageController( IHostingEnvironment appEnvironment)

        {

            //----< Init: Controller >----

            _appEnvironment = appEnvironment;

            //----</ Init: Controller >----

        }

 

 

 

        [HttpGet] //1.Load

        public IActionResult Upload_Image()

        {

            //--< Upload Form >--

            return View();

            //--</ Upload Form >--

        }

 

 

        [HttpPost] //Postback

        public async Task<IActionResult> Upload_Image(IFormFile file)

        {

            //--------< Upload_ImageFile() >--------

            //< check >

            if (file == null || file.Length == 0) return Content("file not selected");

            //</ check >

 

            //< get Path >

            string path_Root = _appEnvironment.WebRootPath;

            string path_to_Images = path_Root + "\\User_Files\\Images\\" + file.FileName;

            //</ get Path >

 

            //< Copy File to Target >

            using (var stream = new FileStream(path_to_Images, FileMode.Create))

            {

                await file.CopyToAsync(stream);

            }

            //</ Copy File to Target >

 

            //< output >

            ViewData["FilePath"] =path_to_Images;

            return View();

            //</ output >

            //--------</ Upload_ImageFile() >--------

        }

    }

}

 

 

 

Upload View

 

@{

    Layout = null;

}

 

<!DOCTYPE html>

 

<html>

<head>

    <meta name="viewport" content="width=device-width" />

    <title>Upload_Image</title>

</head>

<body>

    <form asp-controller="Image" asp-action="Upload_Image" method="post"

          enctype="multipart/form-data">

 

        <input type="file" name="file" />

        <button type="submit">Upload Image</button>

    </form>

 

    <br />

    <label>Uploaded File= @ViewData["FilePath"]</label>

</body>

</html>

 

 

 

 

Ausgabe Verzeichnis

Im Beispiel wird der WebRoot-Verzeichnis gesucht. Hier sollten sich alle Bewegungsdaten befinden, das heißt alle Dateien die hochgeladen werden oder zum Download bereit stehen.

Mobile

.

0123movie.net