今天问题高产似母猪...
通过下列代码,我已经获取了 filemeta 也就是被选中的那个文件。
1 2 3 | <code> $( '#coverfile' ).on( 'change' , '' , function () {
var filemeta = $( '#coverfile' ).prop( 'files' )[0];
});</code>
|
Copier après la connexion
Copier après la connexion
然后我有一个btn按钮,需要通过点击后ajax的方式传递这个被选中的图片,然后在php文件中进行处理。
但是我不知道应该怎么去传递这个获取过来的filemeta
本来我想传递base64过去的,因为预览图片我使用的是转换为base64进行预览的,但是这个转换后的字节太大了,php文件字节报500错误,所以我得换个办法...
回复内容:
今天问题高产似母猪...
通过下列代码,我已经获取了 filemeta 也就是被选中的那个文件。
1 2 3 | <code> $( '#coverfile' ).on( 'change' , '' , function () {
var filemeta = $( '#coverfile' ).prop( 'files' )[0];
});</code>
|
Copier après la connexion
Copier après la connexion
然后我有一个btn按钮,需要通过点击后ajax的方式传递这个被选中的图片,然后在php文件中进行处理。
但是我不知道应该怎么去传递这个获取过来的filemeta
本来我想传递base64过去的,因为预览图片我使用的是转换为base64进行预览的,但是这个转换后的字节太大了,php文件字节报500错误,所以我得换个办法...
用FormData对象提交。注意IE只有版本10以上支持。
FormData对象怎么来呢,有两种方法。
方法一:表单就是FormData
HTML代码:
1 2 3 4 | <code><form id= "fileform" >
<input type= "file" name= "file" >
</form>
</code>
|
Copier après la connexion
JS代码:
1 2 3 4 5 | <code> var formElement = document.getElementById( "fileform" );
var formData = new FormData(formElement);
</code>
|
Copier après la connexion
方法二:自己构造
HTML代码:
1 2 | <code><input type= "file" id= "file" >
</code>
|
Copier après la connexion
JS代码:
1 2 3 4 5 6 7 | <code> var fileInput = document. getElementById( "file" );
var file = fileInput.files[0];
var formData = new FormData();
formData.append( "file" , file);
</code>
|
Copier après la connexion
用jQuery发送请求
1 2 3 4 5 6 7 8 9 | <code>$.ajax({
type: "POST" ,
url: "http://example.com" , //接收请求的URL
processData: false,
contentType: false,
data: formData
})
</code>
|
Copier après la connexion
参考
MDN是个好东西,要学会用
https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_FormData_Objects