Create File from Byte Array and store it locally in web folder
private void CreateFileFromByteArray(Dates dates)
{
FileDb fileDb = _context.fileDbs.FirstOrDefault(x => x.Id == dates.fileid);
if (fileDb != null)
{
// Convert the byte array back to a file
string filePath = Path.Combine("wwwroot\\downloads\\" + fileDb.Filename);
System.IO.File.WriteAllBytes(filePath, fileDb.Attachment);
string filepah = string.Format("https://{0}//downloads//{1}", HttpContext.Request.Host.Value, fileDb.Filename);
TempData["filepath"] = filepah;
TempData["filename"] = fileDb.Filename;
}
}
Upload file in Asp.net
[HttpPost]using Azure.Storage.Blobs;
public async Task<string> Uploadfile(IFormFile CertImageFile)
{
if (CertImageFile != null && CertImageFile.Length > 0)
{
// Check if the file size exceeds 10 MB
const long maxFileSize = 10 * 1024 * 1024; // 10 MB in bytes
if (CertImageFile.Length > maxFileSize)
{
return "The file size must not exceed 10 MB.";
}
using (var memoryStream = new MemoryStream())
{
CertImageFile.CopyTo(memoryStream);
var fileDb = new FileDb
{
Attachment = memoryStream.ToArray(),
Filename = CertImageFile.FileName
};
string fileuri = await AzureFileUpload.UploadFromBinaryDataAsync(memoryStream.ToArray(), CertImageFile.FileName,connectionstring,containername);
_context.fileDbs.Add(fileDb);
_context.SaveChanges();
// Retrieve the last inserted ID
int lastInsertedId = fileDb.Id;
return lastInsertedId.ToString();
}
}
else
{
return "Please select a file to upload.";
}
}
namespace newWatchlistAppInAspNetMvc
{
public class AzureFileUpload
{
public static BlobContainerClient getBlobContainerClient(string connectionString, string containerName)
{
BlobContainerClient containerClient = new BlobContainerClient(connectionString, containerName);
return containerClient;
}
public static async Task<string> UploadFromBinaryDataAsync(byte[] buffer, string filename, string connstring, string container)
{
BlobContainerClient containerClient = getBlobContainerClient(connstring,container);
BlobClient blobClient = containerClient.GetBlobClient(filename);
BinaryData binaryData = new BinaryData(buffer);
await blobClient.UploadAsync(binaryData, true);
// Return the URI of the uploaded file
return blobClient.Uri.ToString();
}
}
}
<div class="form-group border border-primary p-2 m-2">
<input id="CertImageFile" type="file">
<button onclick="Submit('#Url_fileid')">Upload File</button>
</div>
function Submit(txtfileid) {
event.preventDefault();
alert('Uploading file...');
var pdata = new FormData();
var files = $("#CertImageFile").get(0).files;
pdata.append('CertImageFile', files[0]);
$.ajax({
url: "/dates/Uploadfile",
type: "POST",
data: pdata,
processData: false,
contentType: false,
success: function (data) {
if ($.isNumeric(data)) {
$(txtfileid).val(data);
var input = $("#CertImageFile");
input.replaceWith(input.val('').clone(true));
}
else {
alert(data);
}
}
});
}