Прежде всего, ваш не может "скрыть/не является публичной" звеном в технологии на основе веб (HTML/CSS/JavaScript). Загрузки обрабатываются клиентом, поэтому URL-адрес Download/Link должен быть общедоступным. Вы можете попытаться «скрыть» защитные параметры, например, Идентификаторы в URL-адресе загрузки с использованием бэкэнда, исполняемого языка программирования, такого как «PHP или node.js и т. Д.». Таким образом, вы можете создать URL-адреса hash
, такие как http://www.myside.com/download/359FTBW!S3T387IHS
, чтобы скрыть параметры, такие как recordId
в вашем URL-адресе.
Зная это, ваше решение довольно простое. Просто используйте HTML attribute download как <a href="http://mydownloadurl" download>link text</a>
, чтобы заставить браузер скачать href
источник. Здесь нет ng-click
. К сожалению, атрибут download
не поддерживается браузером Safari. Это не имеет большого значения, когда браузер обрабатывает загрузку. В зависимости от конфигурации операционной системы пользователей файл будет загружен или открыт непосредственно в программе, установленной в этой системе. Например, файл PDF будет открыт в средстве просмотра PDF, если доступно какое-либо приложение для просмотра PDF.
Я написал Plunker, который обрабатывает ng-href
в контроллере AngularJS $scope
. Надеюсь, это то, что вам нужно.
Ваш контроллер:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.fileHref = 'http://www.analysis.im/uploads/seminar/pdf-sample.pdf';
});
Ваше мнение:
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="[email protected]" src="https://code.angularjs.org/1.3.14/angular.js" data-semver="1.3.14"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<a ng-href="fileHref" download="yourFilename">Download</a>
</body>
</html>
ОК спасибо, supppose, если мы хотим, чтобы загрузить файл в нг щелкните function.how мы можем добиться этого и еще одну вещь здесь я вижу непосредственно заданный href url. без предоставления напрямую мне нужно дать внутри функцию ng-click, можно сказать Пожалуйста. –
Сделать загрузку через angularJS не является хорошим способом. Но если вы хотите установить URL-адрес загрузки через angularJS -> взгляните на мой пример. – lin
ОК спасибо вам, что вы выбрали mush lin. –