Je suis un débutant avec Angular, je veux savoir comment créer une partie de téléchargement de fichier Angular 5 , j'essaie de trouver un tutoriel ou un document, mais je ne vois rien nulle part. Une idée pour ça? Et j'ai essayé ng4-files mais cela ne fonctionne pas pour Angular 5
angular
typescript
core114
la source
la source
Choose File
téléchargement btn? Bdw dans les deux cas, il vous suffit de télécharger en utilisant FormDataRéponses:
Voici un exemple de travail pour le téléchargement de fichiers vers l'API:
Étape 1: modèle HTML (file-upload.component.html)
Définissez une balise d'entrée simple de type
file
. Ajoutez une fonction à(change)
-event pour gérer le choix des fichiers.Étape 2: Gestion du téléchargement dans TypeScript (file-upload.component.ts)
Définissez une variable par défaut pour le fichier sélectionné.
Créez la fonction que vous utilisez dans
(change)
-event de votre balise d'entrée de fichier:Si vous souhaitez gérer la sélection multifichier, vous pouvez parcourir ce tableau de fichiers.
Créez maintenant la fonction de téléchargement de fichier en vous appelant file-upload.service:
Étape 3: Service de téléchargement de fichiers (file-upload.service.ts)
En téléchargeant un fichier via la méthode POST, vous devez utiliser
FormData
, car vous pouvez donc ajouter un fichier à la requête http.Donc, c'est un exemple de travail très simple, que j'utilise tous les jours dans mon travail.
la source
const invFormData: FormData = new FormData(); invFormData.append('invoiceAttachment', invoiceAttachment, invoiceAttachment.name); invFormData.append('invoiceInfo', JSON.stringify(invoiceInfo));
le contrôleur a deux paramètres correspondants, mais j'ai dû analyser le JSON dans le contrôleur. Mon contrôleur Core 2 ne prendrait pas automatiquement le modèle dans le paramètre. Ma conception originale était un modèle avec une propriété de fichier, mais je ne pouvais pas le faire fonctionnercreateContrat(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>
De cette façon, j'implémente le fichier de téléchargement vers l'API Web dans le projet.
Je partage pour qui le souci.
Pas à pas
API Web ASP.NET
Formulaire HTML
Fichier TS pour utiliser l'API
Service TS
la source
Une méthode très simple et rapide utilise ng2-file-upload .
Installez ng2-file-upload via npm.
npm i ng2-file-upload --save
Au premier module d'import dans votre module.
Balisage:
Dans vos commentaires:
C'est l'utilisation la plus simple de ceci. Pour connaître toute la puissance de ce voir démo
la source
J'utilise Angular 5.2.11, j'aime la solution fournie par Gregor Doroschenko, mais j'ai remarqué que le fichier téléchargé est de zéro octet, j'ai dû faire un petit changement pour que cela fonctionne pour moi.
Les lignes suivantes (formData) ne fonctionnaient pas pour moi.
https://github.com/amitrke/ngrke/blob/master/src/app/services/fileupload.service.ts
la source
Ok, comme ce fil apparaît parmi les premiers résultats de google et pour les autres utilisateurs ayant la même question, vous n'êtes pas obligé de réactiver la roue comme indiqué par trueboroda, il y a la bibliothèque ng2-file-upload qui simplifie ce processus de téléchargement d'un fichier avec angulaire 6 et 7 tout ce que vous devez faire est:
Installez la dernière CLI angulaire
Ensuite, installez rx-compat pour des raisons de compatibilité
Installez ng2-file-upload
Importez la directive FileSelectDirective dans votre module.
Dans votre composant
Modèle
Pour une meilleure compréhension, vous pouvez consulter ce lien: Comment télécharger un fichier avec Angular 6/7
la source
Personnellement, je fais cela en utilisant ngx-material-file-input pour le front-end et Firebase pour le back-end. Plus précisément, C loud Storage pour Firebase pour le back-end combiné avec Cloud Firestore. Ci-dessous un exemple, qui limite le fichier à ne pas dépasser 20 Mo et n'accepte que certaines extensions de fichier. J'utilise également Cloud Firestore pour stocker des liens vers les fichiers téléchargés, mais vous pouvez ignorer cela.
contact.component.html
contact.component.ts (partie du validateur de taille)
contact.component.ts (partie téléchargeur de fichiers)
règles de stockage
la source
toString()
de la déclaration contactForm?toString()
c'est inutile, a édité ma réponse. Pour ceux qui liraient ce commentaire, à la fin defileUploader
en contact.component.ts j'avais])].toString()})
. Maintenant , il est tout simplement:])]})
.Nous devons créer un dossier "temp" dans le lecteur C, puis ce code imprimera le Json dans la console et enregistrera le fichier téléchargé dans le dossier créé
la source
Tout d'abord, vous devez configurer HttpClient dans votre projet Angular.
Ouvrez le fichier src / app / app.module.ts, importez HttpClientModule et ajoutez-le au tableau des importations du module comme suit:
Ensuite, générez un composant:
Ensuite, générez un service de téléchargement:
Ensuite, ouvrez le fichier src / app / upload.service.ts comme suit:
Ensuite, ouvrez le fichier src / app / home / home.component.ts et commencez par ajouter les importations suivantes:
Ensuite, définissez les variables fileUpload et files et injectez UploadService comme suit:
Ensuite, définissez la méthode uploadFile ():
Ensuite, définissez la méthode uploadFiles () qui peut être utilisée pour télécharger plusieurs fichiers image:
Ensuite, définissez la méthode onClick ():
Ensuite, nous devons créer le modèle HTML de notre interface utilisateur de téléchargement d'images. Ouvrez le fichier src / app / home / home.component.html et ajoutez le contenu suivant:
Découvrez ce tutoriel et cet article
la source
Exemple complet de téléchargement de fichiers en utilisant Angular et nodejs (express)
Code HTML
Code composant TS
Code Node Js
fileUpload contrôleur d'API
Télécharger le service à l'aide de multer
la source
Essaye ça
Installer
Importer
HTML
la source
En angulaire 7/8/9
Lien source
Utilisation du formulaire Bootstrap
Dans la classe de composant
la source