Saya seorang pemula dengan Angular, saya ingin tahu cara membuat bagian unggah File 5 Angular , saya mencoba menemukan tutorial atau dokumen, tetapi saya tidak melihat apa pun di mana pun. Ada ide untuk ini? Dan saya mencoba ng4-file tetapi tidak berfungsi untuk Angular 5
angular
typescript
core114
sumber
sumber
Choose File
upload btn sederhana ? Bdw dalam kedua kasus Anda cukup mengunggah menggunakan FormDataJawaban:
Berikut adalah contoh kerja untuk unggahan file ke api:
Langkah 1: Template HTML (file-upload.component.html)
Tentukan tag input tipe sederhana
file
. Tambahkan fungsi ke(change)
-event untuk menangani pemilihan file.Langkah 2: Unggah Penanganan dalam TypeScript (file-upload.component.ts)
Tentukan variabel default untuk file yang dipilih.
Buat fungsi yang Anda gunakan di
(change)
-bahkan dari tag input file Anda:Jika Anda ingin menangani pemilihan multi, maka Anda dapat mengulangi melalui array file ini.
Sekarang buat fungsi unggah file dengan memanggil Anda file-upload.layanan:
Langkah 3: Layanan Unggah File (file-upload.service.ts)
Dengan mengunggah file melalui POST-metode yang harus Anda gunakan
FormData
, karena Anda dapat menambahkan file ke permintaan http.Jadi, Ini adalah contoh kerja yang sangat sederhana, yang saya gunakan setiap hari dalam pekerjaan saya.
sumber
const invFormData: FormData = new FormData(); invFormData.append('invoiceAttachment', invoiceAttachment, invoiceAttachment.name); invFormData.append('invoiceInfo', JSON.stringify(invoiceInfo));
Pengontrol memiliki dua parameter yang sesuai, tetapi saya harus mengurai JSON di controller. Pengontrol Core 2 saya tidak akan secara otomatis mengambil model dalam parameter. Desain asli saya adalah model dengan properti file, tapi saya tidak bisa membuatnya bekerjacreateContrat(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>
Dengan cara ini saya menerapkan file unggah ke API web dalam proyek.
Saya berbagi untuk siapa perhatian.
Selangkah demi selangkah
ASP.NET Web API
Bentuk HTML
File TS untuk menggunakan API
Layanan TS
sumber
Metode yang sangat mudah dan tercepat menggunakan ng2-file-upload .
Instal ng2-file-upload via npm.
npm i ng2-file-upload --save
Pada modul impor pertama di modul Anda.
Markup:
Di ts commonen Anda:
Ini adalah penggunaan paling sederhana dari ini. Untuk mengetahui semua kekuatan ini, lihat demo
sumber
Saya menggunakan Angular 5.2.11, saya suka solusi yang disediakan oleh Gregor Doroschenko, namun saya perhatikan bahwa file yang diunggah adalah nol byte, saya harus membuat perubahan kecil untuk membuatnya bekerja untuk saya.
Baris berikut (formData) tidak berfungsi untuk saya.
https://github.com/amitrke/ngrke/blob/master/src/app/services/fileupload.service.ts
sumber
Ok, karena utas ini muncul di antara hasil pertama google dan untuk pengguna lain yang memiliki pertanyaan yang sama, Anda tidak perlu mengaktifkan kembali roda seperti yang ditunjukkan oleh trueboroda ada perpustakaan ng2-file-upload yang menyederhanakan proses mengunggah sebuah file dengan sudut 6 dan 7 yang perlu Anda lakukan adalah:
Instal Angular CLI terbaru
Kemudian instal rx-compat untuk masalah kompatibilitas
Instal ng2-file-upload
Impor FileSelectDirective Directive dalam modul Anda.
Di komponen Anda
Templat
Untuk pemahaman yang lebih baik Anda dapat memeriksa tautan ini: Cara Mengunggah File Dengan Angular 6/7
sumber
Secara pribadi saya melakukan ini menggunakan ngx-material-file-input untuk front-end, dan Firebase untuk back-end. Lebih tepatnya Penyimpanan C keras untuk Firebase untuk back-end yang dikombinasikan dengan Cloud Firestore. Di bawah contoh, yang membatasi file tidak lebih dari 20 MB, dan hanya menerima ekstensi file tertentu. Saya juga menggunakan Cloud Firestore untuk menyimpan tautan ke file yang diunggah, tetapi Anda dapat melewati ini.
contact.component.html
contact.component.ts (bagian validator ukuran)
contact.component.ts (bagian pengunggah file)
aturan penyimpanan
sumber
toString()
di deklarasi contactForm?toString()
itu tidak berguna, edit jawaban saya. Bagi mereka yang akan membaca komentar ini, pada akhirfileUploader
di contact.component.ts aku punya])].toString()})
. Sekarang itu hanya:])]})
.Kita harus membuat folder "temp" di drive C, maka kode ini akan mencetak Json in console dan menyimpan file yang diunggah di folder yang dibuat
sumber
Pertama, Anda perlu mengatur HttpClient di proyek Angular Anda.
Buka file src / app / app.module.ts, impor HttpClientModule dan tambahkan ke array impor modul sebagai berikut:
Selanjutnya, hasilkan komponen:
Selanjutnya, hasilkan layanan unggahan:
Selanjutnya, buka file src / app / upload.service.ts sebagai berikut:
Selanjutnya, buka file src / app / home / home.component.ts, dan mulai dengan menambahkan impor berikut:
Selanjutnya, tentukan fileUpload dan variabel file dan masukkan UploadService sebagai berikut:
Selanjutnya, tentukan metode uploadFile ():
Selanjutnya, tentukan metode uploadFiles () yang dapat digunakan untuk mengunggah banyak file gambar:
Selanjutnya, tentukan metode onClick ():
Selanjutnya, kita perlu membuat template HTML UI unggah gambar kita. Buka file src / app / home / home.component.html dan tambahkan konten berikut:
Lihatlah tutorial ini dan postingan ini
sumber
Contoh lengkap pengunggahan File menggunakan Angular dan nodejs (express)
Kode HTML
Kode Komponen TS
Kode Node Js
fileUpload API controller
Unggah layanan menggunakan multer
sumber
Coba ini
Install
Impor
Html
sumber
Dalam Angular 7/8/9
Tautan Sumber
Menggunakan Formulir Bootstrap
Di Kelas Komponen
sumber