Как скачать или получить файл из каталога Project, используя jQuery - PullRequest
0 голосов
/ 14 мая 2019

У меня есть HTML-таблица, созданная вручную с помощью JQuery, когда пользователь нажимает на строку, которая вызывает функцию Jquery Ajax.Эта функция вызывает ASP.NET MVC Controller, вызов Controller для внутреннего извлечения файла с файлового сервера и сохранения в каталоге проектов в папке ".. \ download \".Мне нужно вернуть этот файл JQuery и загружаемый файл в браузер.

Вызов API и сохранение файла (любого типа) в каталоге проектов:

var response = _httpClient.GetAsync(documentURL).Result;
HttpContent content = response.Content;
string currfile = System.Web.Hosting.HostingEnvironment.MapPath(string.Format("~/download/"));
System.IO.DirectoryInfo di = new DirectoryInfo(currfile);
foreach (FileInfo file in di.GetFiles())
{
    file.Delete();
}
using (var file = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath(string.Format("~/download/{0}.{1}", fileName, fileExt)), FileMode.CreateNew))
{ // create a new file to write to
    Stream contentStream = content.ReadAsStreamAsync().Result; // get the actual content stream                
    contentStream.CopyToAsync(file); // copy that stream to the file stream
    file.FlushAsync(); // flush back to disk before disposing
}

JQuery Call :

$("#DivAttachmentDetails  tr:not(:first)").click(function () {
    var DocumentumId = $(this).find("td:eq(0)").find(':input[name=hdnDocumentumId]').val();//$('#hdnDocumentumId').val();        
         $.ajax({
              type: 'POST',
              url: getExactPath('/Supplier/GetDocument'),
              data: {
                  documetObj: DocumentumId
              },
              dataType: 'json',
              async: false,
                  success: function (jsonData) {                              
              },
              error: function () {
                  alert("Unable to fetch the Document.");
              }
             });
             });

Как мне немедленно вернуть этот файл обратно в браузер с помощью JQuery.

1 Ответ

0 голосов
/ 17 мая 2019

После добавления файла в ".. \ download \ filename.pdf" я отправляю обратно объединенное имя + имя файла.Я храню в папке каталога решений, поскольку использование страницы менее 5 пользователей.

string returnurl:
using (var file = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath(string.Format("~/download/{0}.{1}", fileName, fileExt)), FileMode.CreateNew))
{ // create a new file to write to
    Stream contentStream = content.ReadAsStreamAsync().Result; // get the actual content stream                
    contentStream.CopyToAsync(file); // copy that stream to the file stream
    file.FlushAsync(); // flush back to disk before disposing

    returnurl =  "\download\"+ fileName+"."+fileExt
}

JQuery:

success: function (jsonData) 
{                              
    window.open(jsonData.returnurl) // this opens the file in new windows as "http:\\projectname:8080\download\yourfilename.pdf" ( any file type)
},
...