it-swarm.com.de

Dateiupload in Winkel 4

wenn ich versuche zu installieren "npm install ng2-file-upload --save". __

UNMET PEER DEPENDENCY @4.1.0
UNMET PEER DEPENDENCY @4.1.0
`-- [email protected]

und Upload funktioniert nicht Meine Anwendungen werden ausgelöst 

"Kann nicht an 'Uploader' binden, da es keine bekannte Eigenschaft von 'Eingabe' ist."

das ist mein HTML

<input type="file" ng2FileSelect [uploader]="upload" multiple formControlName="file" id="file"/>

und seine Komponente

import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload';   
import { FileSelectDirective, FileUploader } from 'ng2-file-upload/ng2-file-
upload';

export class PersonalInfoComponent implements OnInit
{
    public upload:FileUploader= new FileUploader({url:""});
}

Elternmodul

import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload';

@NgModule({

imports: [
..
....
..
FileUploadModule
],

export class RegistrationModule { }

und ich habe nichts in AppModule (Grand Parent Module) importiert/geändert.

Kann mir bitte jemand weiterhelfen ...

10
sandeep

Bilder in Angular 4 ohne Plugin hochladen Dies ist der Artikel, der möglicherweise einen Versuch wert ist . Bilder in Angular 4 ohne Plugin hochladen

Es wird auf diese Punkte hingewiesen:

  1. Verwenden der Methode .request () anstelle von .post 
  2. Senden von formData direkt in den Körper.
  3. Anpassen von Kopfzeilenelementen und Erstellen eines neuen RequestOptions-Objekts
  4. Um formData mit Bildinhalt zu senden, müssen Sie den Content-Type-Header entfernen.
4
Assil

Eine gängige Lösung ist das Erstellen eines neuen Moduls wie shared module. Sie müssen lediglich ein freigegebenes Modul wie This erstellen und das freigegebene Modul in der app.module-Datei importieren

import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';

import { FileSelectDirective, FileDropDirective } from 'ng2-file-upload';
import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload';

@NgModule({
     imports: [ FileUploadModule],  
     declarations: [ ],
     exports :[ FileSelectDirective, FileDropDirective, FormsModule,
               FileUploadModule],
})
export class SharedModule { }

importiere share.module einfach so in dein app.module.

import { NgModule } from '@angular/core';
import { SharedModule} from '../shared/shared.module';

@NgModule({
    imports: [SharedModule],
    declarations: [],
    exports :[],
   })
export class AppModule { }

werfen Sie einen Blick auf Lazy Loading in Winkel 4

2
Sathish Kotha

Ich glaube nicht, dass wir zusätzliche Bibliotheken brauchen

onFileChange(event){
   let files = event.target.files; 
   this.saveFiles(files);
    }
@HostListener('dragover', ['$event']) onDragOver(event) {
    this.dragAreaClass = "droparea";
    event.preventDefault();
}
@HostListener('dragenter', ['$event']) onDragEnter(event) {
    this.dragAreaClass = "droparea";
    event.preventDefault();
}
@HostListener('dragend', ['$event']) onDragEnd(event) {
    this.dragAreaClass = "dragarea";
    event.preventDefault();
}
@HostListener('dragleave', ['$event']) onDragLeave(event) {
    this.dragAreaClass = "dragarea";
    event.preventDefault();
}
@HostListener('drop', ['$event']) onDrop(event) {   
    this.dragAreaClass = "dragarea";           
    event.preventDefault();
    event.stopPropagation();
    var files = event.dataTransfer.files;
    this.saveFiles(files);
}

Nun können wir Dateien per Drag & Drop hochladen, indem Sie auf den Link-Button klicken und zusätzliche Daten mit Dateien hochladen.

Den vollständigen Artikel finden Sie hier Angular 4 Upload-Dateien mit Daten und Web-API per Drag & Drop

2
Ali Adravi

Sie benötigen dazu keine externe Bibliothek, überprüfen Sie den Beispielcode

@Component({
    selector: 'app-root',
    template: '<div>'
        + '<input type="file" (change)="upload($event)">'
        + '</div>',
})

export class AppComponent {

    constructor(private _service: commonService) { }

    upload(event: any) {
        let files = event.target.files;
        let fData: FormData = new FormData;

        for (var i = 0; i < files.length; i++) {
            fData.append("file[]", files[i]);
        }
        var _data = {
            filename: 'Sample File',
            id: '0001'
        }

        fData.append("data", JSON.stringify(_data));

        this._service.uploadFile(fData).subscribe(
            response => this.handleResponse(response),
            error => this.handleError(error)
        )
    }
    handleResponse(response: any) {
        console.log(response);
    }
    handleError(error: string) {
        console.log(error);
    }
}

Mehr Info

2
Prashobh

importiere Fileupload von primeng oder benutze den einfachen File Uploader

HTML

  <p-fileUpload name="myfile[]"  customUpload="true" 
     (uploadHandler)="uploadSuiteForRelease($event)" auto="auto"></p-fileUpload> 

TS

 var data = new FormData();
        let index: number = 0;
        if (this.files != undefined)
        {
            for (let file of this.files.files)
            {
                data.append("myFile" + index, file);
                ++index;
            }
        }
     data.append('viewModel', JSON.stringify(<<data model that needs to be 
     sent with request>>));

Senden Sie diese Daten mit der Anforderung return this._httpClient.post ('api/controller', data);

Server

  [HttpPost]
        public async Task<IHttpActionResult> Post()
        {
            HttpPostedFile httpPostedFile = null;
            var viewModel = JsonConvert.DeserializeObject<ReleasesViewModel>(HttpContext.Current.Request["viewModel"]);
            if (viewModel != null)
            {
                if (HttpContext.Current.Request.Files.AllKeys.Any())
                {
                    var cnt = HttpContext.Current.Request.Files.Count;
                    for (int i = 0; i < cnt; i++)
                    {
                        httpPostedFile = HttpContext.Current.Request.Files["myFile" + i];
                    }
                }
            }
        }
0
Sara

HTML: 

<input type="file" (change)="onFileChange($event)" id="file">

TS:

@Component({
  ......
})

export class myComponent{

    form: FormGroup;

    contructor(fb: FormGroup){
       form: fb.group({file: null});
    }

 //fVals comes from HTML Form -> (ngSubmit)="postImage(form.value)" 
    postImage(fVals){
      let body = new FormData();
      body.append('file', formValues.file);

      let httpRequest = httpclient.post(url, body);
      httpRequest.subscribe((response) =>{
         //..... handle response here
      },(error) => {
         //.....handle errors here
      });
   }

   onFileChange(event) {
     if(event.target.files.length > 0) {
       let file = event.target.files[0];
       this.form.get('file').setValue(file);
     }
   }
}
0
Uche Dim