我使用ASP. NET Core作为后端,我试图在角7中使用ajax发送文件。我已经创建了一个FormData类的对象,并使用append方法将该文件添加到该对象中。
Error: {"headers":{"normalizedNames":{},"lazyUpdate":null},"status":415,"statusText":"Unsupported Media Type","url":"https://localhost:44319/Api/TimeLinePost","ok":false,"name":"HttpErrorResponse","message":"Http failure response for https://localhost:44319/Api/TimeLinePost: 415 Unsupported Media Type","error":{"type":"https://tools.ietf.org/html/rfc7231#section-6.5.13","title":"Unsupported Media Type","status":415,"traceId":"0HLLKF4AT3QD7:00000005"}}
这是我的角度代码:
export class StatusComponent {
selectedImage: File = null;
constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string) {
}
onImageSelected(event) {
this.selectedImage = <File>event.target.files[0];
}
update() {
const fd = new FormData();
fd.append('image', this.selectedImage, this.selectedImage.name);
this.http.post<boolean>(this.baseUrl + 'Api/TimeLinePost', fd).subscribe(
result => {
},
error => {
alert('Ops! Somthing went wrong!');
console.log(`Error: ${JSON.stringify(error)}`)
}
)
}
}
这是我的api:
[HttpPost]
public bool Post(IFormFile image)
{
return true;
}
它可以通过两种方式解决。
1) 将[FromForm]
属性添加到操作参数(如本问题中所回答):
[HttpPost]
public bool Post([FromForm] IFormFile image)
{
return true;
}
2) 在配置中添加SetCompatibilityVersion(CompatibilityVersion.Version\u 2\u 2)
。它将自动解决绑定问题:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
问题内容: 我制作了一个脚本,该脚本使用$ .ajax和FormData将两个表单对象传递给PHP。一个表单对象是文本,另一个是文件。它作为独立脚本运行良好。但是,将其作为插件添加到Wordpress后,它一直给我。 我不能序列化formdata,仅仅是因为那样我将无法将文件传递给PHP中的回调函数。 ajax调用之前涉及FormData的JS: 上面的这一部分是100%正确的。 Ajax呼叫:
本文向大家介绍通过Ajax使用FormData对象无刷新上传文件方法,包括了通过Ajax使用FormData对象无刷新上传文件方法的使用技巧和注意事项,需要的朋友参考一下 写在前面:本文说的这个方案有浏览器兼容性问题;所有主流浏览器的较新版本已经支持这个对象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+,对兼容性比较敏感的网站慎用。 在工作中
问题内容: 我正在使用ajax提交包含数组,文本字段和文件的多部分表单。 我将每个VAR附加到主数据中 然后我使用ajax函数将其发送到PHP文件以存储在sql DB中。 但是在PHP方面,变量(即数组)显示为字符串。 当我不使用ajax作为表单数据发送它,而是使用简单的选项时,确实在PHP端将它作为数组获得,但是后来我也无法发送文件。 有什么办法吗? 问题答案: 您有几种选择: 将其转换为JSO
我正在使用ajax提交一个包含数组、文本字段和文件的多部分表单。 我将每个VAR附加到主数据中,如下所示 然后使用ajax函数将其发送到PHP文件中存储在sql DB中。 但是在PHP端,变量(一个数组)显示为字符串。 当我没有将它作为表单数据与ajax一起发送,而是使用简单的选项时,我会在PHP端将它作为一个数组来获取,但这样我就不能同时发送文件。 有什么解决办法吗?
问题内容: 我该如何发布文件并输入字符串数据?例如,我还有许多其他 隐藏的输入数据 ,需要将它们发送到服务器, html, 使用下面的这段代码,我仅设法发送文件数据 ,而不 发送隐藏的输入数据。 jQuery, server.php 结果, 我希望得到这个结果, 可能吗? 问题答案: 添加了一个循环,并在中将更改为,以供对象引用附加到。
本文向大家介绍通过Ajax方式上传文件使用FormData进行Ajax请求,包括了通过Ajax方式上传文件使用FormData进行Ajax请求的使用技巧和注意事项,需要的朋友参考一下 通过传统的form表单提交的方式上传文件: Html代码 不过传统的form表单提交会导致页面刷新,但是在有些情况下,我们不希望页面被刷新,这种时候我们都是使用Ajax的方式进行请求的: Js代码 如上,通过$(