Как заставить пользователя загрузить файл, т.е. не разрешить сохранение, как в ASP.NET C # - PullRequest
0 голосов
/ 01 марта 2019

Я хочу принудительно загрузить файл, который находится в моем потоке для пользователя.Я хочу сохранить файл на диске пользователя, запретив сохранение как функциональность, поскольку мы не хотим, чтобы пользователь изменял имя файла во время загрузки.Вот мой код, который отлично работает на основе настроек браузера

        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.ClearContent();
        System.Web.HttpContext.Current.Response.ClearHeaders();
        System.Web.HttpContext.Current.Response.ContentType = "application/pdf;";
        System.Web.HttpContext.Current.Response.AddHeader("Content-Length", data.Length.ToString());
        System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=abc.pdf");
        //System.Web.HttpContext.Current.Response.OutputStream.Write(downloadData[0].data, 0, downloadData[0].data.Length);
        System.Web.HttpContext.Current.Response.BinaryWrite(data);
        System.Web.HttpContext.Current.Response.Flush();
        System.Web.HttpContext.Current.Response.End();

Я знаю, что

Ask where to save each file before downloading

- это настройка браузера.Есть ли конкретное решение, чтобы отключить это и заставить загрузку в каждом браузере?

1 Ответ

0 голосов
/ 01 марта 2019

Как уже упоминалось в комментариях выше, это невозможно.Как только ваш файл попадает в браузер, он находится под контролем пользователя.

Один из возможных вариантов - использовать cookie-файл для хранения некоторых конкретных данных, которые вы хотите использовать позже, возможно, для информации / деятельности пользователя.Хотя, опять же, это может быть заблокировано пользователем, это более стабильный подход.

...