如何将输入File对象序列化为JSON? [英] How can I serialize an input File object to JSON?
本文介绍了如何将输入File对象序列化为JSON?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想像这样将HTML输入文件转换为JSON字符串:
I want to convert an HTML input file to a JSON string like this:
var jsonString = JSON.stringify(file);
console.log( file );
console.log( jsonString );
现在,在我的Firebug中,其记录为:
Now, in my Firebug it logs as:
File { size=360195, type="image/jpeg", name="xyz.jpg", mehr...}
Object {}
为什么jsonString
为空?
背景信息:我想使用JSONP将文件引用发送到另一个PHP服务器.
Background info: I want to send the file-reference with JSONP to another PHP server.
其他信息:我只想将文件指针(引用)转换为字符串,以通过GET发送.
Additional Information: I want to convert only the file-pointer (reference) to a string, to send it via GET.
推荐答案
不可能直接转换文件对象转换为JSON.
It is not possible to directly convert a File object into JSON using JSON.stringify
in Chrome, Firefox and Safari.
您可以变通使用JSON.stringify
例如:
// get File Object
var fileObject = getFile();
// reCreate new Object and set File Data into it
var newObject = {
'lastModified' : fileObject.lastModified,
'lastModifiedDate' : fileObject.lastModifiedDate,
'name' : fileObject.name,
'size' : fileObject.size,
'type' : fileObject.type
};
// then use JSON.stringify on new object
JSON.stringify(newObject);
您还可以添加 EX:
// get File Object
var fileObject = getFile();
// implement toJSON() behavior
fileObject.toJSON = function() { return {
'lastModified' : myFile.lastModified,
'lastModifiedDate' : myFile.lastModifiedDate,
'name' : myFile.name,
'size' : myFile.size,
'type' : myFile.type
};}
// then use JSON.stringify on File object
JSON.stringify(fileObject);
注意:使用POST
HTTP方法将File
对象发送到服务器.
Note: send a File
Object to server using the POST
HTTP method.
这篇关于如何将输入File对象序列化为JSON?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文