Я новичок в Angular, я хочу знать, как создать часть загрузки файла Angular 5 , я пытаюсь найти какой-нибудь учебник или документ, но я нигде ничего не вижу. Есть идеи для этого? И я попробовал ng4-файлы, но он не работает для Angular 5
angular
typescript
core114
источник
источник
Choose File
загрузить BTN? Bdw в обоих случаях вы просто загружаете с помощью FormDataОтветы:
Вот рабочий пример загрузки файла в api:
Шаг 1: HTML-шаблон (file-upload.component.html)
Определите простой тег ввода типа
file
. Добавьте в(change)
-event функцию для обработки выбора файлов.Шаг 2. Загрузка обработки в TypeScript (file-upload.component.ts)
Определите переменную по умолчанию для выбранного файла.
Создайте функцию, которую вы используете в
(change)
-event вашего тега ввода файла:Если вы хотите обрабатывать выборку из нескольких файлов, вы можете перебрать этот массив файлов.
Теперь создайте функцию загрузки файла, позвонив вам file-upload.service:
Шаг 3: Служба загрузки файлов (file-upload.service.ts)
Загружая файл через POST-метод, вы должны использовать его
FormData
, потому что вы можете добавить файл в http-запрос.Итак, это очень простой рабочий пример, который я использую каждый день в своей работе.
источник
const invFormData: FormData = new FormData(); invFormData.append('invoiceAttachment', invoiceAttachment, invoiceAttachment.name); invFormData.append('invoiceInfo', JSON.stringify(invoiceInfo));
контроллера есть два соответствующих параметра, но мне пришлось проанализировать JSON в контроллере. Мой контроллер Core 2 не будет автоматически выбирать модель в параметре. Мой оригинальный дизайн был моделью со свойством файла, но я не мог заставить его работатьcreateContrat(fileToUpload: File, newContrat: Contrat): Observable<boolean> { let headers = new Headers(); const endpoint = Api.getUrl(Api.URLS.createContrat)); const formData: FormData =new FormData(); formData.append('fileKey', fileToUpload, FileToUpload.name); let body newContrat.gup(this.auth.getCurrentUser().token); return this.http .post(endpoint, formData, body) .map(() => { return true; }) }
Content-Disposition: form-data; name="fileKey"; filename="file.docx" Content-Type: application/octet-stream <file>
Таким образом, я реализую загрузку файла в веб-API в проекте.
Я делюсь тем, о ком беспокоюсь.
Шаг за шагом
ASP.NET Web API
HTML-форма
TS файл для использования API
Сервис ТС
источник
Очень простой и быстрый способ использования ng2-file-upload .
Установите ng2-file-upload через npm.
npm i ng2-file-upload --save
Сначала импортируйте модуль в ваш модуль.
Разметка:
В твоем компоненте тс:
Это простейшее использование этого. Чтобы узнать всю силу этого см. Демо
источник
Я использую Angular 5.2.11, мне нравится решение, предоставленное Грегором Дорощенко, однако я заметил, что загруженный файл имеет нулевые байты, мне пришлось внести небольшое изменение, чтобы заставить его работать на меня.
Следующие строки (formData) не работают для меня.
https://github.com/amitrke/ngrke/blob/master/src/app/services/fileupload.service.ts
источник
Хорошо, так как эта тема появляется среди первых результатов поиска Google и для других пользователей, имеющих такой же вопрос, вам не нужно возвращать колесо, как указано trueboroda, есть библиотека ng2-file-upload, которая упрощает этот процесс загрузки файл с угловыми 6 и 7 все, что вам нужно сделать, это:
Установите последнюю версию Angular CLI
Затем установите rx-compat для совместимости
Установите ng2-file-upload
Импортируйте директиву FileSelectDirective в вашем модуле.
В вашем компоненте
шаблон
Для лучшего понимания вы можете проверить эту ссылку: Как загрузить файл с Angular 6/7
источник
Лично я делаю это, используя ngx-material-file-input для внешнего интерфейса и Firebase для внутреннего. Точнее, C loud Storage for Firebase для серверной части в сочетании с Cloud Firestore. Ниже приведен пример, который ограничивает размер файла не более 20 МБ и допускает только определенные расширения файлов. Я также использую Cloud Firestore для хранения ссылок на загруженные файлы, но вы можете пропустить это.
contact.component.html
contact.component.ts (часть валидатора размера)
contact.component.ts (часть загрузки файлов)
storage.rules
источник
toString()
Выглядит отлично, но зачем вам декларация contactForm?toString()
бесполезно, отредактировал мой ответ. Для тех, кто будет читать этот комментарий, в концеfileUploader
в contact.component.ts у меня было])].toString()})
. Теперь это просто])]})
.Мы должны создать папку «temp» на диске C, затем этот код распечатает Json в консоли и сохранит загруженный файл в созданную папку.
источник
Во-первых, вам нужно настроить HttpClient в вашем проекте Angular.
Откройте файл src / app / app.module.ts, импортируйте HttpClientModule и добавьте его в массив импорта модуля следующим образом:
Затем сгенерируйте компонент:
Затем создайте сервис загрузки:
Затем откройте файл src / app / upload.service.ts следующим образом:
Затем откройте файл src / app / home / home.component.ts и начните с добавления следующего импорта:
Затем определите переменные fileUpload и files и введите UploadService следующим образом:
Затем определите метод uploadFile ():
Затем определите метод uploadFiles (), который можно использовать для загрузки нескольких файлов изображений:
Затем определите метод onClick ():
Далее нам нужно создать HTML-шаблон нашего интерфейса загрузки изображений. Откройте файл src / app / home / home.component.html и добавьте следующее содержимое:
Проверьте этот учебник и этот пост
источник
Полный пример загрузки файла с использованием Angular и nodejs (экспресс)
HTML-код
Код компонента TS
Код узла Js
Контроллер fileUpload API
Загрузите сервис используя multer
источник
Попробуй это
устанавливать
Импортировать
Html
источник
В угловой 7/8/9
Ссылка на источник
Использование формы начальной загрузки
В классе компонентов
источник