2016-12-12 3 views
0

Как загрузить файл по форме submit в angular2. Я хочу использовать ng2-file-upload библиотека. Но я не могу использовать его в форме submit. Кто-нибудь может мне помочь?Как загрузить файл по форме submit в angular2?

+0

Что вы имеете в виду под «Я не умею», ошибки? Вы просмотрели демо (http://valor-software.com/ng2-file-upload/)? – Akkusativobjekt

+1

Я хочу нажать кнопку отправки формы и хочу отправить все данные с изображением/файлом в бэкэнд. Как я могу это сделать? @Akkusativobjekt –

ответ

1

Это должно быть возможно, просто передав загруженный файл в ваш метод, который можно вызвать в submit.

В вашем HTML

<form #sieFileUploadForm="ngForm"> 
    <input type="file" id="fileItem" 
    value="Browse..."> 

В вас т.с.

uploadFile(file){ 
console.log(file) 
} 

Примечание: - при отправке beckend вам нужно сделать это FormData нравится этот

uploadFile(file){ 
let formData = new FormData(); 
formData.append('FILENAME', file); 
} 
+0

На самом деле вам просто нужно поле ввода с директивой ng2FileSelect и привязкой к загрузчику, например [uploader] = "uploader". Дополнительная кнопка, которая вызывает метод ulpoad(), и вы закончили. Нет необходимости создавать объект FormData, AFAIK. – Akkusativobjekt

+0

Я хочу отправить данные других полей, нажав кнопку отправки формы. –

+0

Да, я должен быть в состоянии сделать это, как я уже упоминал, просто передайте данные методу! –

0

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

uploader: FileUploader = new FileUploader({ url: "http://localhost/upload.php" }); 

    constructor() { 
    this.uploader.onBuildItemForm = (item, form) => { 
     form.append("key1", "value1"); 
     form.append("key1", "value2"); 
    }; 
} 

Некоторые говорят, что это немного симпатичнее, чтобы поместить этот код в ngOnInit(), но я не хочу раздувать этот код и это решение здесь не очень важно.

После этого вы можете просмотреть дополнительные данные сообщения в полезной нагрузке http-сообщения, например, с помощью инструментов разработчика Firefox. Они должны выглядеть следующим образом:

-----------------------------110224700718602891206418821 
Content-Disposition: form-data; name="key1" 

value1 
-----------------------------110224700718602891206418821 
Content-Disposition: form-data; name="key1" 

value2 

(Ваша граница не будет же)

Я нашел solution на GitHub трекере проекта.

 Смежные вопросы

  • Нет связанных вопросов^_^