سلام .
پاسخ سوال یک : از این سورس استفاده کنید : https://github.com/muhammad-magdy/Up...ngAjaxAndHTML5
پاسخ سوال دو : شما باید در دیتابیس خودتون یک جدول مخصوص فایل های دانلودی بسازید و هر فایلی که آپلود میکنید رو با یک شناسه و آدرس ذخیره کنید و یک اکشن در کنترلر دانلود خودتون در نظر بگیرید که شناسه رو دریافت کنه و با توجه به آدرس فایل، فایل رو به کلاینت انتقال بده :
[HttpGet("[action]/{fileId}")]
public ActionResult File(string fileId)
{
try
{
var fileq = _fileServices.Query(c => c.FileId == fileId).Select(c => c).Single();
var webRoot = _hostingEnvironment.WebRootPath;
var file = System.IO.Path.Combine(webRoot, _apiSettingsConfig.Value.FileUploadFolder + "/" + fileq.FileUrl);
byte[] fileBytes = System.IO.File.ReadAllBytes(file);
string fileName = fileq.FileName;
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
catch
{
return BadRequest("فایل یافت نشد");
}
}
با این کار میتونید مدیریت روی دانلود فایل ها داشته باشید . مثلا تاریخ انقضا مشخص کنید یا تعداد دفعات دانلود رو کنترل کنید یا خیلی کار های دیگه .
اگر هم میخوایید از هاست دیگری غیر از این هاست خودتون استفاده کنید باید ابتدا فایل رو در هاست خودتون آپلود کنید و با api که هاست های دانلودی ارائه میدن آدرس فایل خودتون رو در هاست خودتون بدید به api و در اون هاست هم آپلود میشه و لینک بهتون میده .