![](/img/trans.png)
[英]Unsupported Media Type 415 Error in Angular 7 & .NET Core API
[英]Asp.Core API trying to upload file and store in database: ERROR: 415: Unsupported Media Type
在尝试创建可以将文件(和其他数据)上传到数据库的 API 时,我总是被卡住。 API 具有原始 JSON 响应,其中数据填充数据库的不同表。 但是,对于邮递员,我必须将文件作为表单数据或二进制文件上传(与我想发送原始 JSON 数据的同时),但是无论我尝试什么,这似乎都不起作用。 所以这里是在 asp.core 中上传文件的方法(我的方法使用了一个视图模型类):
if (item.fileuploadresults != null) {
try {
foreach(FileUploadResult f in item.fileuploadresults) {
var parameters = new DynamicParameters();
parameters.Add("file", f.files);
parameters.Add("@filename", f.filename);
parameters.Add("@blob", f.FileBlob);
var filemessage = await _sqlconnection.QueryAsync < int > ($ @ "INSERT INTO
[dbo].[OptionalFile] (file, [FileName], [FileBloB])
VALUES({
f.files
}, @filename, @blob); SELECT SCOPE_IDENTITY();
", parameters);
int FileMessageID = filemessage.First();
//update cross table
await _sqlconnection.QueryAsync < int > ($ @ "INSERT INTO
[dbo].[ClaimCrossOptionalFile]
(ClaimID, FileID) VALUES({
claimID
}, {
FileMessageID
});
");
}
}
catch (Exception ex) {
int k = 0;
}
}
模型如下所示:
public class Service
{
public IList<FileUploadResult> fileuploadresults { get; set; }
}
public class FileUploadResult
{
public IFormFile files { get; set; }
[MaxLength]
public byte[] FileBlob { get; set; }
public long Length { get; set; }
public string filename { get; set; }
}
原始 JSON:
{
"service":"Scheduled service",
"RequestTypeId":"2",
"CurrentKilometerreading":"10043",
"OptionalMessage":"Message3",
"fileuploadresults":[
{
"files":""
}
],
"works":[
{
"title":"Service1",
"price":"200",
"id":"1998"
},
{
"title":"Service2",
"price":"300",
"id":"1999"
},
{
"title":"labour 1",
"chargePerHour":"10",
"hours":"2",
"price":"20.00",
"id":"2000"
},
{
"title":"labour2",
"chargePerHour":"20",
"hours":"2",
"price":"40.00",
"id":"2001"
},
{
"title":"Part 1",
"pricePerUnit":"10",
"quantity":"11",
"price":"110.00",
"id":"2002"
},
{
"title":"Part 1",
"pricePerUnit":"10",
"quantity":"11",
"price":"110.00",
"id":"2003"
}
]
}
是否不可能在同一个请求中同时发送原始 json 数据和表单数据? 我也尝试过在邮递员中更改内容类型,但没有成功。
感谢任何对如何进行有任何想法的人。
尝试使用jsonConvert
并在方法中使用[FromForm] string jsonData
如果有人也遇到这个问题,我找到了一个解决方案,你可以看看这篇文章: using jsonData as a key value to send mixed data in asp: does not update the database with the values 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.