JavaScript、文件和Blob对象
因为我正在开发Flickr界面,所以我有一个问题链接。虽然我不是像PHP、C++、java等语言开发代码那样新,但是在课堂上我必须错过一些东西,因为我不明白该怎么做,或者更重要的是如何思考。JavaScript、文件和Blob对象,javascript,file,blob,document,Javascript,File,Blob,Document,因为我正在开发Flickr界面,所以我有一个问题链接。虽然我不是像PHP、C++、java等语言开发代码那样新,但是在课堂上我必须错过一些东西,因为我不明白该怎么做,或者更重要的是如何思考。 当我从桌面上传文件时,可以通过上传时使用的输入访问文件,但是实际的文件数据在哪里?当我使用下面的方法获取数据时,我得到了一个包含一些细节的文件对象,但是原始数据丢失了。为什么? function processUpload(event) { "use strict"; var contai
function processUpload(event) {
"use strict";
var container = document.getElementById("imageContainer"),
data = event.target.files,
file = null,
i = null;
while (container.childNodes.length > 0) {
container.removeChild(container.childNodes[0]);
}
for (i = 0; file = data[i]; i++) {
if (!file.type.match('image.*')) {
continue;
}
files.push(file);
}
loadImages();
}
function fetchImages() {
var blob = [
new Blob([], {}), [], new Uint16Array([32])
];
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", {
tagmode: "any",
format: "json",
}, function (data) {
for (var i = 0; data.items.length; i++) {
files.push(new File(blob, data.items[i].media.m, {
type: 'image/jpeg'
}));
if (i === data.items.length - 1) {
loadImages();
}
}
});
}
var reader = new FileReader();
reader.onload = (function (file) {
return function (f) {
// do something with the image...
// f.target.result gets the value used for the src attribute
// what do I need to do here to convert it into a File object that is equal to a typical file upload?
};
}) (files[i]); // why?
reader.readAsDataURL(files[i]); // why again?
Richard文件对象类似于对实际文件的引用。使用
FileReader()
获取实际数据,或使用URL.createObjectURL()
将实际数据转换为URL。请注意,由于文件
s是“refs”,使用操作系统修改打开的文件将实时更新文件
对象的详细信息,您可以重新读取文件
以获取新的文件数据,而无需重新获取(通过浏览器或dnd)链接。我相信正是这种“刷新”打开的对象的能力,迫使初始文件在采集时没有实际的二进制数据。请尝试以下回答:我以前确实使用过FileReader(检查上面的内容),但现在如何将其转换为文件对象,就好像它是上载一样?谢谢你们两位的帮助!:)文件对象类似于对实际文件的引用。使用FileReader()
获取实际数据,或使用URL.createObjectURL()
将实际数据转换为URL。请注意,由于文件
s是“refs”,使用操作系统修改打开的文件将实时更新文件
对象的详细信息,您可以重新读取文件
以获取新的文件数据,而无需重新获取(通过浏览器或dnd)链接。我相信正是这种“刷新”打开的对象的能力,迫使初始文件在采集时没有实际的二进制数据。请尝试以下回答:我以前确实使用过FileReader(检查上面的内容),但现在如何将其转换为文件对象,就好像它是上载一样?谢谢你们两位的帮助!:)