如何在Angular2中上传文件

穆巴希尔

我必须提交一张带有图像的表格。我已经尝试了此代码(有多种方式),但对我没有用。有没有人有使用angular2上传文件的工作演示,请帮帮我。

component.html

    <form class="form-horizontal" role="form" >

        <div class="form-group">
            <label class="control-label col-sm-4" for="myname" style="">Name<span class="asterisk">*</span></label>
            <div class="col-sm-7">
                <div>
                    <input type="text" class="form-control" id="myname"
                    [(ngModel)]="myfile.name">                        
                </div>                  
            </div>                               
        </div>        


        <div class="form-group">
            <label class="control-label col-sm-4" for="myimage">Image</label>
            <div class="col-sm-7">
                <div>
                    <input type="file" (change)="fileChangeEvent($event)" placeholder="Upload file..." />                         
                </div>   
            </div>
        </div>


        <div class="form-group">        
        <div class="text-center">
            <button type="button" (click)="upload()">Upload</button>             
        </div>
        </div>
  </form>

component.ts

     myfile={
                "name":"Mubashshir",               
                "image":''
     }

     fileChangeEvent(fileInput: any){
        this.myfile.image = fileInput.target.files;        
     }

     upload(){
          this.base_path_service.PostRequest('http://128.199.190.109/api/school/schoolDetail/',this.myfile)
            .subscribe(
                data => {
                            console.log("data submitted");                        
                        },
                err => console.log(err),
                () =>{
                     console.log('Authentication Complete');                    

                }
            );
      }
蒂埃里圣堂武士

实际上,Http该类目前不支持该功能。

您需要利用基础XHR对象来做到这一点:

import {Injectable} from 'angular2/core';
import {Observable} from 'rxjs/Rx';

@Injectable()
export class UploadService {
  constructor () {
    this.progress$ = Observable.create(observer => {
      this.progressObserver = observer
    }).share();
  }

  private makeFileRequest (url: string, params: string[], files: File[]): Observable {
    return Observable.create(observer => {
      let formData: FormData = new FormData(),
        xhr: XMLHttpRequest = new XMLHttpRequest();

      for (let i = 0; i < files.length; i++) {
        formData.append("uploads[]", files[i], files[i].name);
      }

      xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            observer.next(JSON.parse(xhr.response));
            observer.complete();
          } else {
            observer.error(xhr.response);
          }
        }
      };

      xhr.upload.onprogress = (event) => {
        this.progress = Math.round(event.loaded / event.total * 100);

        this.progressObserver.next(this.progress);
      };

      xhr.open('POST', url, true);
      xhr.send(formData);
    });
  }
}

有关更多详细信息,请参见此plunkr:https ://plnkr.co/edit/ozZqbxIorjQW15BrDFrg?p = info

Angular仓库中有一个与此相关的问题和未决的PR:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在vNext下的MVC 6中上传文件?

来自分类Dev

如何在Symfony 3中上传文件

来自分类Dev

如何使在struts2中上传文件成为可选?

来自分类Dev

如何在Codeigniter框架中上传文件

来自分类Dev

如何在Android中上传多个文件

来自分类Dev

如何在kaltura中上传字幕文件?

来自分类Dev

如何在PHP中上传文件

来自分类Dev

如何在Postman中上传文件?

来自分类Dev

如何在uploadcare中上传多个文件?

来自分类Dev

如何在Wordpress中上传.jar文件?

来自分类Dev

如何在IIS中上传文件?

来自分类Dev

如何在Android中上传多个文件

来自分类Dev

如何在相对目录中上传文件

来自分类Dev

如何在Codeigniter中上传多个文件?

来自分类Dev

如何在Codeigniter中上传.ini文件?

来自分类Dev

如何在硒中上传多个文件?

来自分类Dev

在Symfony2中上传文件

来自分类Dev

在Retrofit 2中上传文件

来自分类Dev

在Symfony2中上传文件

来自分类Dev

如何在python中上传文件时读取内存中zip文件的内容?

来自分类Dev

如何在不同的文件夹中上传相同的文件?

来自分类Dev

在Struts2中上传多个文件之前如何显示选定的文件名?

来自分类Dev

如何在gsutil中创建存储分区,以便在cloudsql中上传sql转储文件?

来自分类Dev

如何在Laravel 5中上传大于5MB的大文件

来自分类Dev

如何在Alamofire中的参数中上传文件并传递数据-Swift 5

来自分类Dev

如何在Django 3.0.4中上传文件时出现进度条

来自分类Dev

如何在swift 3中在谷歌驱动器中上传CSV文件

来自分类Dev

如何在下面的脚本中更改php中上传文件的名称

来自分类Dev

如何从Angular 8在AWS S3中上传文件

Related 相关文章

热门标签

归档