using Microsoft.AspNetCore.Mvc;
using IWois_Core.Data; //ApplicationDbContext
using Microsoft.AspNetCore.Http;
using System.IO;
using Microsoft.AspNetCore.Hosting; //*IHostingEnvironment
using System.Threading.Tasks; //Task
namespace IWois_Core.Controllers
{
[Area("Demo_02")]
public class DemoController : Controller
{
#region Controller Init
private readonly ApplicationDbContext _dbContext;
private readonly IHostingEnvironment
_hostingEnvironment;
public
DemoController(ApplicationDbContext dbContext, IHostingEnvironment
hostingEnvironment)
{
//----< Init: Controller >----
_dbContext = dbContext;
_hostingEnvironment =
hostingEnvironment;
//----</ Init: Controller >----
}
#endregion
#region Demo: Ajax_Image_Upload
//----------------<
region Demo: Ajax_Image_Upload >-----------------
public IActionResult demo_start()
{
//-------------< load StartView
>-------------
return View("demo_02_Ajax_Image_Upload");
//-------------</ load StartView
>-------------
}
[HttpPost]
public IActionResult
ajax_Image_Upload_post(IFormCollection formFields)
{
//-------------< demo_jQuery_01_post
>-------------
//TODO:
//< load Images >
//ViewData["Text1"] =
"postback-return: <br/>" + sHTML;
//ViewData["Text2"] = sText;
//</ load Data >
//< out >
return View("demo_02_Ajax_Image_Upload");
//</ out >
//-------------</ demo_jQuery_01_post
>-------------
}
[HttpPost]
public async Task<IActionResult>
UploadFilesAjax()
{
//< init >
long uploaded_size = 0;
string path_for_Uploaded_Files =
_hostingEnvironment.WebRootPath + "\\User_Files\\_Upload_Folder\\";
//</ init >
//< get form_files >
//IFormFile uploaded_File
var uploaded_files = Request.Form.Files;
//</ get form_files >
//------< @Loop: Uploaded Files
>------
int iCounter = 0;
string sFiles_uploaded = "";
foreach (var uploaded_file in uploaded_files)
{
//----< Uploaded File >----
iCounter++;
uploaded_size +=
uploaded_file.Length;
sFiles_uploaded += "\n" + uploaded_file.FileName;
//< Filename >
string
uploaded_Filename = uploaded_file.FileName;
string new_Filename_on_Server =
path_for_Uploaded_Files + "\\" + uploaded_Filename;
//</ Filename >
//< Copy File to Target >
using (FileStream stream = new FileStream(new_Filename_on_Server,
FileMode.Create))
{
await uploaded_file.CopyToAsync(stream);
}
//< Copy File to Target >
//----</ Uploaded File >----
}
//------</ @Loop: Uploaded Files
>------
string message = "Upload successful!\n files
uploaded:"
+ iCounter + "\nsize:" + uploaded_size + "\n" + sFiles_uploaded ;
return Json(message);
}
//----------------</
region Demo: jQuery_Functions >-----------------
#endregion
}
}
|