-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFileUploadController.cs
More file actions
41 lines (37 loc) · 1.55 KB
/
FileUploadController.cs
File metadata and controls
41 lines (37 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using FileUploaderAngular.Extensions;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
namespace FileUploaderAngular.Controllers {
[ApiController]
[Route("[controller]")]
public class FileUploadController : ControllerBase {
private readonly ILogger<FileUploadController> _logger;
private readonly IWebHostEnvironment _hostingEnvironment;
public FileUploadController(ILogger<FileUploadController> logger, IWebHostEnvironment env) {
_logger = logger;
_hostingEnvironment = env;
}
public async Task<IActionResult> AsyncUpload(IFormFile myFile) {
// Specifies the target location for the uploaded files
string targetLocation = Path.Combine(_hostingEnvironment.WebRootPath, "uploads");
try {
if (!Directory.Exists(targetLocation))
Directory.CreateDirectory(targetLocation);
using (var fileStream = System.IO.File.Create(Path.Combine(targetLocation, myFile.FileName))) {
myFile.CopyTo(fileStream);
}
} catch {
Response.StatusCode = 400;
}
byte[] fileBytes = await myFile.GetBytes();
return new ContentResult() { Content = Convert.ToBase64String(fileBytes) };
}
}
}