我正在编写一个Reactjs应用程序并将一个文件和一个字符串发布到ASP.Net Core 2.0后端api项目中。我想将文件和字符串值发布到后端。但它总是显示错误。
f.append("File",filesArray[i][0]);
f.append("member_code", this.state.member_code);
axios.post(apiBaseUrl
, f, {
headers: {'Content-Type': 'multipart/form-data'}
})
.then((response) => {
var result = response.data;
if(result[0].status == "1")
{
this.state.filesNames.push(result[0].filename);
if((i +1) == filesArray.length){
window.HideModal();
this.setState({filesPreview: null, filesToBeSent: null});
this.props.onClick(this.state.filesNames);
}
}
});
在我的ASP.Net核心项目中,我尝试了如下:
[HttpPost]
[Route("upload")]
public async Task<IActionResult> Upload(FileUploadViewModel[] model)
{
var file = model.File;
var member_code = "test";
if (file.Length > 0)
{
string path = Path.Combine(_env.WebRootPath, "uploadFiles/member_files/" + member_code);
bool exists = System.IO.Directory.Exists(path);
if (!exists)
System.IO.Directory.CreateDirectory(path);
using (var fs = new FileStream(Path.Combine(path, file.FileName), FileMode.Create))
{
await file.CopyToAsync(fs);
}
}
return clsCommonFunctions.ConstructFileUploadResponse(clsConfig.status_success, file.FileName);
}
但是在ASP.Net核心功能中,我不能接受我作为multipart / form-data传递的File和string值。
任何人都建议我如何在ASP.Net Core项目中接受文件和字符串值作为FormData。
感谢。
答案 0 :(得分:1)
这article给了我很多帮助。 我刚刚通过使用[FromBody]属性从Request Form-Data中获取特定值来解决我的问题。最终的代码如下:
ALTER Procedure [dbo].[summary_dashboard]
(
@Period int,
@DaysinMonth Int,
@DayHrs Int
)
as
Declare @Tbl1 as table (SiteName nvarchar(50) null
, Country nvarchar(50) null
, BudgetPrj nvarchar(50) null
, PeriodEnd DateTime null
, DaysMtd Int null
, ToGoMtd Int null
, PeriodToTDays Int null
, MtdRev Numeric(13,2) null
, PrjRevenue Numeric(13,2) null
, BdgRev Numeric(13,2) null
, TrgRev Numeric(13,2) null
, BCMMtd Numeric(13,2) null
, HrsMtd Numeric(13,2) null
, FuelVal Numeric(13,2) null
, FuelLtrs Numeric(13,2) null
, FuelPerc Numeric(13,2) null
)
Declare @Tbl2 as Table (SiteName nvarchar(50) null
, FltCnt Int null
, Availability Numeric (5,2) null
, Utilization Numeric (5,2) Null
, Idle Numeric(5,2)
)
insert into @Tbl1 (SiteName
, Country
, BudgetPrj
, PeriodEnd
, DaysMtd
, ToGoMtd
, PeriodToTDays
, MtdRev
, PrjRevenue
, BdgRev
, TrgRev
, BCMMtd
, HrsMtd
, FuelVal
, FuelLtrs
, FuelPerc
)
Exec sp_Prd_Dashboard_Summary @Period
insert into @tbl2 (SiteName
, FltCnt
, Availability
, Utilization
, Idle
)
Exec summary_fleet_performance @DayHrs, @Period, @DaysinMonth
select tbl1.SiteName
, tbl1.Country
, tbl1.BudgetPrj
, tbl1.PeriodEnd
, tbl1.DaysMtd
, tbl1.ToGoMtd
, tbl1.PeriodToTDays
, tbl1.MtdRev
, tbl1.PrjRevenue
, tbl1.BdgRev
, tbl1.TrgRev
, tbl1.BCMMtd
, tbl1.HrsMtd
, tbl1.FuelVal
, tbl1.FuelLtrs
, tbl1.FuelPerc
, tbl2.FltCnt
, tbl2.Availability
, tbl2.Utilization
, tbl2.Idle
from @tbl1 tbl1 full outer join
@tbl2 tbl2
on tbl1.SiteName = tbl2.SiteName