Скачать файл по ссылке был отправлен на электронную почту - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь отправить электронное письмо со ссылкой на скачивание файла, но при нажатии на файл ничего не происходит, я не могу скачать файл по ссылке.

После того, как я нажму на ссылку для загрузки файла, в браузере откроется пустая вкладка, но файл еще не загружен

public ActionResult DownLoadTraining(ContactUsModel model)
    {
        SendEmail sendemail = new SendEmail();

        string toEmail = ConfigurationManager.AppSettings["ContactUsEmail"];

        var keys = new Dictionary<string, string>() {
            { "Firstname", model.Firstname },
            { "Lastname", model.Lastname },
            { "Email", model.Email },
            { "Orgnization", model.Orgnization },
            { "Message", model.Message }
        };
//here i build the link to donwload it .
        string DownLoadlink = "<a download  href='http://www.yoursite.com/folders/yourfile.txt' target='_blank'>Click me to DownLoad</a>";


        if (keys != null && keys.Count != 0)
        {
            string body = string.Join(Environment.NewLine, keys.Select(x => $"{x.Key}: {x.Value}"));

            sendemail.Send(new EmailModel()
            {
                Body = DownLoadlink,
                Subject = "DownLoad Training Message",
                To = new List<string>() { model.Email },

            });

            return Json(new { val = true }, JsonRequestBehavior.AllowGet);
        }
        else
        {
            return Json(new { val = false }, JsonRequestBehavior.AllowGet);
        }
    }

Любой совет.

1 Ответ

0 голосов
/ 05 июля 2018

Создайте один метод для загрузки файла, когда пользователь нажимает URL-адрес электронной почты. Создать ссылку как

http://yourdomain.com/Controller/Action?FilePath=/Folder/FileName.txt

public FileResult Download(string FilePath)
{
    DocPath = System.Web.HttpUtility.UrlDecode(FilePath);

    var comPath = HttpContext.Server.MapPath(FilePath);
    byte[] fileBytes = System.IO.File.ReadAllBytes(comPath);
    string fileName = Path.GetFileName(comPath);
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...