加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular6 – 使用其他表单数据上载Angular 6文件

发布时间:2020-12-17 18:06:59 所属栏目:安全 来源:网络整理
导读:我已输入数据用户详细信息first_name,last_name,phone_number和profile_pic但文件未上传其他表单数据如何上传其他表单数据文件? 用户form.component.ts import { Component,OnInit } from '@angular/core';import { FormGroup,FormBuilder,Validators } fro
我已输入数据用户详细信息first_name,last_name,phone_number和profile_pic但文件未上传其他表单数据如何上传其他表单数据文件?

用户form.component.ts

import { Component,OnInit } from '@angular/core';
import { FormGroup,FormBuilder,Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { UserService } from '../user.service';
import { FileUploader,FileSelectDirective } from 'ng2-file-upload/ng2-file-upload';

@Component({
  selector: 'user-form',templateUrl: './user-form.component.html',styleUrls: ['./user-form.component.scss']
})
export class UserFormComponent {
  angForm: FormGroup
  router: Router;

  constructor(private userservice: UserService,private fb: FormBuilder,private _route: Router) {
    this.createForm();
    this.router = _route;
  }

  createForm() {
    this.angForm = this.fb.group({
      first_name: ['',Validators.required],last_name: ['',// email: ['',Validators.required,Validators.email],email: ['',Validators.compose([Validators.required,Validators.email])],phone_number: ['',Validators.maxLength(10)])],profile_pic:[]
    });
  }


  addUser(first_name,email,phone_number,profile_pic) {
    var data = {
      first_name: first_name,last_name: last_name,email: email,phone_number: phone_number,profile_pic: profile_pic,}
    console.log(data);

    // this.uploader.onAfterAddingFile = (file) => { file.withCredentials = false; }

    // public uploader :  FileUploader;

    // uploader.onAfterAddingFile = (file) => { file.withCredentials = false; }
    this.userservice.addUser(data);
    this.router.navigate(['/pages/users/list']); //Redirection path
  }
}

用户form.component.html

<div class="row justify-content-center">
  <div class="col-lg-8">
    <nb-card>
      <nb-card-header>Add User</nb-card-header>
      <nb-card-body>
        <!-- <div [formGroup]="form"> -->
          <form [formGroup]="angForm" novalidate>
            <div class="row full-name-inputs form-group">
              <div class="col-sm-6 input-group">
                <input type="text" placeholder="First Name" formControlName="first_name" class="form-control" #firstName/>
              </div>
              <div *ngIf="angForm.controls['first_name'].invalid && (angForm.controls['first_name'].dirty || angForm.controls['first_name'].touched)" class="alert alert-danger" >
                <div *ngIf="angForm.controls['first_name'].errors.required">
                  First Name is required.
                </div>
              </div>
              <div class="col-sm-6 input-group">
                <input type="text" placeholder="Last Name" formControlName="last_name" class="form-control" #lastName/>
              </div>
              <div *ngIf="angForm.controls['last_name'].invalid && (angForm.controls['last_name'].dirty || angForm.controls['last_name'].touched)" class="alert alert-danger" >
                <div *ngIf="angForm.controls['last_name'].errors.required">
                  Last Name is required.
                </div>
              </div>
            </div>
            <div class="form-group input-group">
              <input type="email" placeholder="Email" formControlName="email" class="form-control" #email/>
            </div>
            <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)" class="alert alert-danger" >
              <div *ngIf="angForm.controls['email'].errors.required">
                Email is required.
              </div>
              <div *ngIf="angForm.controls['email'].errors.email">
                  Enter valid email.
                </div>
            </div>
            <div class="form-group input-group">
              <input type="number" placeholder="Phone Number" formControlName="phone_number" class="form-control" #phoneNumber/>
            </div>
            <div *ngIf="angForm.controls['phone_number'].invalid && (angForm.controls['phone_number'].dirty || angForm.controls['phone_number'].touched)" class="alert alert-danger" >
              <div *ngIf="angForm.controls['phone_number'].errors.required">
                Phone Number is required.
              </div>
              <div *ngIf="angForm.controls['phone_number'].errors.maxLength">
                  Phone Number must be 10 digits
                </div>
            </div>
            <div class="form-group input-group">
              <input type="file" class="form-control file-data" formControlName="profile_pic" #profilePic />
            </div>
            <div class="input-group">
              <!-- <input type="submit" class="btn btn-success btn-rectangle btn-demo ml-auto submit-btn" name="Submit" > -->
              <button (click)="addUser(firstName.value,lastName.value,email.value,phoneNumber.value,profilePic.value);" [disabled]="angForm.pristine || angForm.invalid" class="btn btn-success btn-rectangle btn-demo ml-auto submit-btn">Submit</button>
            </div>
          </form>
        <!-- </div> -->
      </nb-card-body>
    </nb-card>

  </div>

</div>

使用表单数据上传文件时使用其他表单输入

字符串和文件通过表单数据上载到REST API.任何人都可以为此建议吗?提前致谢.

解决方法

尝试下面的代码来发布文件上传数据.

ngOnInit() {


 this.uploader.onBuildItemForm = (fileItem: any,form: any) => {
  form.append('appNo',this.appNo); //note comma separating key and value

 };
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读