They’re 2 most common ways of uploading image using .Net Web API.
In this article you’ll check the first one, which is uploading image using Form Data.
There are more than one way of uploading Files using ASP.Net Core or .Net Web API. We can also get bytes stream, convert into image or save in wwwroot folder. The other way of doing this is even more simpler. When we receive Image or File using Form Data then It’s really simple to save that file.
First of all we need to create images folder inside wwwroot folder.
Here’s our code.
[HttpPost] public string UploadImage([FromForm]IFormFile file) { try { // getting file original name string FileName = file.FileName; // combining GUID to create unique name before saving in wwwroot string uniqueFileName = Guid.NewGuid().ToString() + "_" + FileName; // getting full path inside wwwroot/images var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/", FileName); // copying file file.CopyTo(new FileStream(imagePath, FileMode.Create)); return "File Uploaded Successfully"; } catch (Exception ex) { return ex.Message; } }
If you don’t have
wwwroot
directory in your project, it’s really simple to add.
Just add the below line in your Configure
Action of your project’s Startup.cs
File.
app.UseStaticFiles();
Now create a new Folder as wwwroot
at the root of your project.
We need to select form-data
parameter to upload image/file
. We’ll select POST
method because we have written a POST Web Service. Make sure that you are sending file with the exact name that you are receiving file in your API.
You can see that File has been successfully Uploaded.
If you want to send some more parameters with File, Here’s your solution.
Sometimes we need to send some other parameters with file as well. For achieving this we need to create a custom Model. Here’s our Model
using System; using Microsoft.AspNetCore.Http; public class UserModel { public int Id { get; set; } public string Name { get; set; } public string Address { get; set; } public IFormFile Image { get; set; } }
Now we can USE this Model instead of single File.
[HttpPost(nameof(UploadImage))] public string UploadImage([FromForm]UserModel data) { }
You can access your data using data object, e.g. data.Name, data.Address, data.Image
That’s all for now. Thank you for reading the article. If you have any question, Please ask in the comment section below.
Related Articles:
– JWT Authentication Configuration in .Net 7
– Best Windows VPS (Virtual Private Server) in 2022 – Top 5
Quick Links
Legal Stuff
Social Media