2014-12-15 2 views
3

Я пробовал использовать приведенный ниже код. Но это не сработало.Загрузка файла с использованием asp.net mvc

public FileResult download(string path) 
{ 
    return File(path, "application/pdf", Server.UrlEncode(path)); 
} 

Мой Ajax Кодекс:

function fileDownload(path) { 
    $.ajax({ 
     url: '/Home/download', 
     data: { path: path }, 
     type: 'POST', 
     async: false, 
     success: function (data) { } 
    }); 
} 
+0

ли код попал в контроллер? – Aravindan

ответ

1

Эта задача выполнена с помощью окна .location метод.

Также Вы можете использовать HTML теги для этого:

<a href="Path" download="Filename">download me</a> 
4

Вы вообще хотите отобразить имя файла на физический путь на сервере, например, Предположим, что пользователь выбирает файл Foo.pdf и все файлы содержимого находятся в папке ~/Content:

public FileResult download(string path) 
{ 
    string actualPath = Server.MapPath("~/Content/" + path); 
    return File(actualPath, "application/pdf", Server.UrlEncode(path)); 
} 

Однако, с точки зрения безопасности, что позволяет пользователю непосредственно указать имя файла сомнительна - вместо этого вы можете рассмотреть другие альтернативы, такие как таблица или словарь доступных файлов, и заставляют браузер выбирать один из доступных файлов с помощью ключа - таким образом злоумышленники не могут фишировать для файлов, которые не предназначены для обслуживания.

Edit, после того, видя, что OP хочет Ajax

Ajaxing документа вниз должен работать, хотя загрузив таким образом, не будет оказывать PDF - вы должны передать документ в скриптовый просмотр PDF или похожие.

Вместо ajaxing документ, вы можете вместо этого генерировать простую ссылку, кнопку или изображение, которое пользователь может нажать на, чтобы вызвать действие контроллера и загрузить PDF:

@Html.ActionLink("Click to download", "download", new {path = "MyNicePDF.pdf"}) 
+0

Все еще не работает. –

+0

@HardikMansaraa вам нужно будет квалифицировать «Не работает». Не отображается файл? Дала вам ошибку? etc – StuartLC

+0

Ошибка возврата ошибки. И никакой файл не отображается. –

1
function DownloadAndReturnBackAttachment(linkHref) { 

    $.fileDownload(linkHref, { 

     successCallback: function (url) { 
      gvScanDocuments.PerformCallback(); 
      gvScanDocuments.UnselectRows(); 

     }, 

     failCallback: function (url) { 
      alert("A file download error has occurred, please try again."); 
      gvScanDocuments.PerformCallback(); 
      gvScanDocuments.UnselectRows(); 

     } 

    }); 
} 
Смежные вопросы