我试图发送模型,这部分是一些IFormFile类型的属性,代表用户头像。但不幸的是,我的头像属性总是空的,我看到了很多如何发送单个图片元素的示例,但我可以找到如何发送它的示例,当它是模型的一部分而不是一个单一的元素,就像这里做的那样
下面是我的组件方法,我在其中设置了这个道具
editUser(model: Company) {
this.errors = '';
debugger;
console.log(model);
let fi = this.fileInput.nativeElement;
if (fi.files) {
let fileToUpload = fi.files[0];
model.avatarImage = fileToUpload;
}
model.id = this.company.id;
this.companyService.update(model)
.subscribe(
result => {
if (result) {
}
},
errors => this.errors = errors);
}
export interface Company {
id: string,
advertiseTitle: string,
advertiseDescription: string,
city: string,
street: string,
categoryId: number,
price: number,
facebookPage: string,
instagramPage: string,
avatarImage: File
update(company: Company) {
return this.apiService.put(`${this.path}/${company.id}`, JSON.stringify(company));
}
put(path: string, body): Observable<any> {
debugger;
this.setBearerHeader();
console.log('Http Post Observable: ', path, body);
let url = `${this.baseUrl}${path}`;
let request = new Request({
url: url,
headers: this.headers,
method: RequestMethod.Put,
body: body
});
return this.http.request(request)
.catch(this.handleError)
.map(res => res.json())
};
下面是我的后端put方法(ASP.NET核心)
// PUT api/values/5
[HttpPut("{id}")]
public async Task<IActionResult> Put(string id, [FromBody] CompanyViewModel dto)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
if (id != dto.Id)
{
return BadRequest();
}
//var entity = _mapper.Map<Company>(dto);
//_shopDbContext.Comapnies.Update(entity);
Company entity = this.Get(id);
entity.CategoryId = dto.CategoryId;
entity.City = dto.City;
entity.CategoryId = dto.CategoryId;
entity.Street = dto.Street;
entity.Price = dto.Price;
entity.AdvertiseTitle = dto.AdvertiseTitle;
entity.InstagramPage = dto.InstagramPage;
entity.FacebookPage = dto.FacebookPage;
using (var memoryStream = new MemoryStream())
{
await dto.AvatarImage.CopyToAsync(memoryStream);
entity.AvatarImage = memoryStream.ToArray();
}
_shopDbContext.Comapnies.Update(entity);
await _shopDbContext.SaveChangesAsync();
return Ok(dto);
}
catch (Exception ex)
{
throw;
}
}
这里还有remove[FromBody],在这种情况下不要改变任何东西。
基于这个答案,我设法从Angular 5向ASP.NET core Web API提交了一个表单,其中包括一个文件。
服务器上的模型:
[Required]
public string ExpenseType { get; set; }
[Required]
public string Activity { get; set; }
[Required]
public string Provider { get; set; }
[Required]
public decimal RequestedAmount { get; set; }
[Required]
public IFormFile InvoiceFile { get; set; }
public string Comment { get; set; }
控制器动作:
[HttpPost]
public IActionResult PostPaybackRequest([FromForm] WellnessPayback payback)
{
if (!ModelState.IsValid) return BadRequest(ModelState);
// TODO
return Ok();
}
export interface IWellnessPayback {
expenseType: string;
otherActivity: string;
provider: string;
requestedAmount: number;
invoiceFile: File;
comment: string;
}
public postPaybackRequest(payback: IWellnessPayback): Observable<boolean> {
const formData = new FormData();
for (const prop in payback) {
if (!payback.hasOwnProperty(prop)) { continue; }
formData.append(prop , payback[prop]);
}
return this._http.post<IOption[]>(`${this._baseUrl}/Me`, formData).pipe(map(x => true));
}
问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依
问题内容: 我正在使用angular2和gulp开发一个节点应用程序。我编写了一个组件文件login.ts,如下所示: 我的bootstrap.ts文件是: 但是当我编译这些文件时,出现以下错误: 这是我的tsconfig.json: 我已经使用以下命令安装了angular2的类型: 请帮助纠正错误。 问题答案: @simon错误说的是输入错误。但是对于其他进口商品,我已经发布了此答案,可能对其他
译者:冯宝宝 在本教程中,我们将介绍如何使用ONNX将PyTorch中定义的模型转换为ONNX格式,然后将其加载到Caffe2中。一旦进入Caffe2,我们就可以运行模型来仔细检查它是否正确导出,然后我们展示了如何使用Caffe2功能(如移动导出器)在移动设备上执行模型。 在本教程中,你需要安装onnx和Caffe2。您可以使用pip install onnx获取onnx的二进制版本。 注意: 本
问题内容: 我添加了将Base64图像与Carrierwave结合使用的解决方案,以尝试从Java类上传图像。现在这是我的FileUploader类的样子- 我认为问题出在哪里: 图片型号: 现在,当进行Post调用时,保存在数据库中的文件路径为nil,但其他所有内容均已保存。这是java / android类: 有人有什么想法吗?我整天都被困住了。我想是因为我对Ruby不太了解,所以我要么(1)
意见: URL: POST和GET在 中工作得很好我以前问过类似的问题,我肯定,问题是在前面,用AngularJS,我也是第一次使用AngularJS。但我现在想,可能是我的服务器应用程序出现了问题。 角代码: GET控制器工作良好,我累犯了我所有的图像: 对于文件上传,我使用了本指南 ,这里是指南中的代码: html代码:
update2:供参考,这是我的gradle.build in my module