我正在尝试使用文件选择器功能从桌面选择SWF文件并将其显示在嵌入或对象标记中。我可以让选择器打开没有问题但是当选择SWF文件时,它会崩溃并且根本不会显示它。我尝试了多种不同的代码源。加载像PNG和JPG这样的东西很好,它们没有问题,但SWF文件没有运气。
我试图开始工作的代码段之一如下:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var span = document.createElement('OBJECT');
span.innerHTML = ['src="', e.target.result,
'" title="', escape(theFile.name), '"/>'].join('');
//document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
要注意它不一定是这个特定的代码块,任何想法或替代方案都是最受欢迎的。这是从与PNG和JPG等其他图像类型一起使用的版本修改的。
干杯
答案 0 :(得分:0)
虽然我无法获得允许我从任何地方进行选择的解决方案,但我确实有一个允许我从同一文件夹位置进行选择的解决方案。它现在会做。 具体如下:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
output.push('<li>', escape(f.name),
'</li>');
}
var x = document.createElement("EMBED");
x.setAttribute("src", output[1]);
document.body.appendChild(x);
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
但是,只有当文件和SWF位于同一位置时,它才有效。