我想上傳文件使用Angular 2與Web API,但我沒有得到服務器上的文件。Angular 2與Web API文件上傳
我的控制器的方法是
[HttpPost]
[Route("add")]
public IHttpActionResult Add(CourseDto course)
{
try
{
return Ok("");
//course.CompanyId = User.Identity.GetUserId<int>();
//var result = _courseService.Add(course);
//return Ok(result.Message);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
我CourseDto是
public class CourseDto
{
public int Id { get; set; }
public HttpPostedFileBase CourseFile { get; set; }
}
我的HTML文件是
<form class="form-horizontal" #courseForm="ngForm" (ngSubmit)="onSubmit()" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label col-sm-4">Browse Course:</label>
<div class="col-sm-8">
<input type="file" name="file" (change)="onChange($event)"/>
</div>
</div>
<footer>
<div class="row">
<div class="col-md-12 col-lg-12 col-xs-12">
<div class="pull-right">
<button type="submit" class="btn btn-primary" [disabled]="!courseForm.form.valid">Add</button>
<button type="button" class="btn btn-default" (click)="close()">Close</button>
</div>
</div>
</div>
</footer>
</form>
場模型對於打字稿是
export class Course {
constructor(
public courseFile?:any ,
public id?: number
) {
}
}
我的角2組件的方法是方法
onSubmit() {
this.httpService.post("course/add", this.courseModel)
.subscribe(result => {
this.loggerService.notify(this, "Courses added successfully", Toast[Toast.success]);
this.httpService.onUpdateModel();
this.refreshModel();
}, error => {
console.log(error);
});
}
onChange(event) {
this.courseModel.courseFile =event.target.files[0];
}
角2 HTTP POST方法是
post(url: string, data: any) {
url = `${appConfig.apiUrl}${url}`;
this.progressBarService.RequestStarted();
return this.http.post(url, data)
.finally(() => this.progressBarService.RequestFinished())
.map((result: Response) => result.json())
.catch(this.handleError);
}
我成功接收模式在我的Web API控制器,但沒有文件。如何將文件發送到web api控制器模型?
上帝保佑你的靈魂,爲了從這個怪物中拯救我,我讓自己進入。 – Kadaj
隨時待機哥們:) –