annotate Controllers/UploadController.cs @ 1:a2855cd2d97e default tip

Update: .hgignore
author Franklin Schmit <meokcin@gmail.com>
date Thu, 05 Sep 2024 10:24:33 +0800
parents 689cde763395
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
1 using System;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
2 using System.IO;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
3 using Microsoft.AspNetCore.Mvc;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
4 using Microsoft.AspNetCore.Http;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
5 using Microsoft.AspNetCore.Hosting;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
6
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
7 namespace Grille2.Controllers
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
8 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
9 public partial class UploadController : Controller
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
10 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
11 private readonly IWebHostEnvironment environment;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
12
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
13 public UploadController(IWebHostEnvironment environment)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
14 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
15 this.environment = environment;
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
16 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
17
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
18 // Single file upload
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
19 [HttpPost("upload/single")]
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
20 public IActionResult Single(IFormFile file)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
21 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
22 try
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
23 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
24 // Put your code here
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
25 return StatusCode(200);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
26 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
27 catch (Exception ex)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
28 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
29 return StatusCode(500, ex.Message);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
30 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
31 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
32
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
33 // Multiple files upload
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
34 [HttpPost("upload/multiple")]
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
35 public IActionResult Multiple(IFormFile[] files)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
36 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
37 try
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
38 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
39 // Put your code here
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
40 return StatusCode(200);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
41 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
42 catch (Exception ex)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
43 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
44 return StatusCode(500, ex.Message);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
45 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
46 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
47
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
48 // Multiple files upload with parameter
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
49 [HttpPost("upload/{id}")]
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
50 public IActionResult Post(IFormFile[] files, int id)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
51 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
52 try
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
53 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
54 // Put your code here
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
55 return StatusCode(200);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
56 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
57 catch (Exception ex)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
58 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
59 return StatusCode(500, ex.Message);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
60 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
61 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
62
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
63 // Image file upload (used by HtmlEditor components)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
64 [HttpPost("upload/image")]
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
65 public IActionResult Image(IFormFile file)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
66 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
67 try
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
68 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
69 var fileName = $"{Guid.NewGuid()}{Path.GetExtension(file.FileName)}";
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
70
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
71 using (var stream = new FileStream(Path.Combine(environment.WebRootPath, fileName), FileMode.Create))
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
72 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
73 // Save the file
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
74 file.CopyTo(stream);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
75
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
76 // Return the URL of the file
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
77 var url = Url.Content($"~/{fileName}");
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
78
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
79 return Ok(new { Url = url });
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
80 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
81 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
82 catch (Exception ex)
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
83 {
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
84 return StatusCode(500, ex.Message);
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
85 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
86 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
87 }
689cde763395 init cimmit
Franklin Schmit <meokcin@gmail.com>
parents:
diff changeset
88 }