文件读取器API不输出音频文件



作为控件的一部分,在上传控件之前,我会检查添加的文件是否与扩展名描述的文件类型匹配。

我使用一个隐藏元素做一个文件检查。如果失败,则在formdata追加后删除。

我也检查后端文件,但我也想通过文件阅读器进程检查。createItemsreadItems等所有函数在所有其他情况下都可以工作,这意味着它们返回的输出要么是null真正,错误或. 虽然我从图像和视频文件中得到输出,但音频文件根本没有。应该可以。

问题是:
文件读取器读取audio文件与videoimage文件不同吗?

下面只是实际代码的一小部分。
现在的问题是:为什么它不返回音频文件的输出?.

  • quest0&quest1是UI元素。这是我从中提取文件的元素。
  • reader是"new FileReader"
  • what.filecount被添加,而page init作为只读属性。
  • readItems给出所有类型关闭文件的输出,

然而UI html不得到更新,如果它是文件类型是audio/?

for (var oD = 0; oD < what.files.length; oD++) 
{
var pL = false;
if (typeof window.dofile === 'undefined' || !window.dofile) { return; }

if (file_s.exec(file) && !what.multiple) { pL = true; }
else 
{
if (what.files.length > what.filecount) 
{
alert('too many files added. only ' + what.filecount + ' are allowed.');
what.value = '';

if (quest0 != null) 
{ quest0.innerHTML = ('too many files added. only ' + what.filecount + ' are allowed.'); }

return;
}

pL = true;
if ( !lastform.includes(what.form.id) ) { pL = false; }
}

if (what.files && what.files[oD] && pL == true) 
{
if (file_prev != null) 
{
if (file_prev.getAttribute('data-src') == '') 
{file_prev.setAttribute('data-src', file_prev.src); }

file_prev.src = file_backsrc;
}

reader.onload = function(e) 
{
init();

if (typeof file_prev === 'undefined') 
{
if (quest1 != null) { quest1.innerHTML = 'Error occoured'; }
return;
}

if (file_p == 'img' || file_p == 'video' || file_p == 'audio') 
{ file_prev.src = e.target.result; }

if (file_p == 'canvas') { /*not yet*/ }

kill.classList.remove('invisible');

if (quest1 != null) { quest1.innerHTML = 'file done'; }
}

reader.onerror = function(e) 
{
e.preventDefault();
alert('There was an error with one of your file(s). Filename ' + what.files[oD].name + '');
what.value = '';
}
function waitfor(arr) 
{
if (arr == null || arr.length == 0) { return; }

var aL = arr.length,
aL0 = arr.shift();

file_prev = _(aL0.file_prev);
lastfile = aL0.lastfile;
file_p = aL0.file_p;
reader.readAsDataURL(aL0.file);
aL0.kill.classList.add('invisible');
setTimeout(() => {
init();
waitfor(arr)
}, 1250);

if (quest1 != null) 
{ quest1.innerHTML = 'processing ' + file_p; }
}

if (what.multiple) 
{
var oA = 0;
lastfile = what.files[oD].name;

for (oA; oA < dK.children.length; oA++) 
{
var oB = what.files[oD], oB0, oB1;

if (oB.type.includes('im')) { file_p = 'img'; }
if (oB.type.includes('au')) { file_p = 'audio'; }
if (oB.type.includes('vi')) { file_p = 'video'; }

if (lastfile != what.files[oD].name || lastfilearr.length <= what.filecount) 
{
oB0 = dK.children[oA];
if (oB0.nodeName.toLowerCase() == file_p && what.form.querySelectorAll(file_p)[oD] != null)
{
if ( /*oB0.getAttribute('data-src')==''&&*/ !lastfilearr.includes(what.files[oD].name)) 
{
oB0 = what.form.querySelectorAll(file_p)[oD];
file_prev = oB0;
lastfilearr.push(what.files[oD].name);
oB0.setAttribute('data-src', lastfile);

oB1 = new Object({
'file_prev': file_prev.id,
'file_p': file_p,
'file': what.files[oD],
'kill': kill
});

stoargearr.push(oB1);
createtoast(['Filechecker', 'the ' + what.files[oD].name + ' is getting checked.', 3e3, true, true, ['bg-info', 'text-dark', 'rounded', 'px-2', 'mx-1']]);
createItems('upload', 's', what.files[oD].name, 'name:' + what.files[oD].name + ';nr:' + oD + ';filesize:' + what.files[oD].size + ';filesizehuman:' + Math.abs(what.files[oD].size / 1024 / 1024).toFixed(2) + ';lastmodified:' + new Date(what.files[oD].lastModified).toUTCString() + ';type:' + what.files[oD].type + ';');
}
}
}
}

if (stoargearr.length == what.files.length) { waitfor(stoargearr); }
else { reader.readAsDataURL(what.files[oD]); }
}
}
}

文件读取器api是否;对音频文件的反应不同,因为它对视频或图像文件?

谢谢你的帮助。

开始了。

for (var oD = 0; oD < what.files.length; oD++) {
var pL = false;
if (typeof window.dofile === 'undefined' || !window.dofile) {
return;
};
if (file_s.exec(file) && !what.multiple) {
pL = true;
} else {
if (what.files.length > what.filecount) {
alert('too many files added. only ' + what.filecount + ' are allowed.');
what.value = '';
if (quest0 != null) {
quest0.innerHTML = 'too many files added. only ' + what.filecount + ' are allowed.';
};
return;
};
pL = true;
if (!lastform.includes(what.form.id)) {
pL = false;
};
};
if (what.files && what.files[oD] && pL == true) {
if (file_prev != null) {
if (file_prev.getAttribute('data-src') == '') {
file_prev.setAttribute('data-src', file_prev.src);
};
file_prev.src = file_backsrc;
};
reader.onload = function(e) {
init();
if (typeof file_prev === 'undefined') {
if (quest1 != null) {
quest1.innerHTML = 'Error occoured';
};
return;
};
if (file_p == 'img' || file_p == 'video' || file_p == 'audio') {
file_prev.src = e.target.result;
};
if (file_p == 'canvas') { /*not yet*/ };
kill.classList.remove('invisible');
if (quest1 != null) {
quest1.innerHTML = 'file done';
};
};
reader.onerror = function(e) {
e.preventDefault();
alert('There was an error with one of your file(s). Filename ' + what.files[oD].name + '');
what.value = '';
};
function waitfor(arr) {
if (arr == null || arr.length == 0) {
return;
};
var aL = arr.length,
aL0 = arr.shift();
file_prev = _(aL0.file_prev);
lastfile = aL0.lastfile;
file_p = aL0.file_p;
reader.readAsDataURL(aL0.file);
aL0.kill.classList.add('invisible');
setTimeout(() => {
init();
waitfor(arr)
}, 1250);
if (quest1 != null) {
quest1.innerHTML = 'processing ' + file_p;
};
};
if (what.multiple) {
var oA = 0;
lastfile = what.files[oD].name;
for (oA; oA < dK.children.length; oA++) {
var oB = what.files[oD],
oB0, oB1;
if (oB.type.includes('im')) {
file_p = 'img';
};
if (oB.type.includes('au')) {
file_p = 'audio';
};
if (oB.type.includes('vi')) {
file_p = 'video';
};
if (lastfile != what.files[oD].name || lastfilearr.length <= what.filecount) {
oB0 = dK.children[oA];
if (oB0.nodeName.toLowerCase() == file_p && what.form.querySelectorAll(file_p)[oD] != null) {
if ( /*oB0.getAttribute('data-src')==''&&*/ !lastfilearr.includes(what.files[oD].name)) {
oB0 = what.form.querySelectorAll(file_p)[oD];
file_prev = oB0;
lastfilearr.push(what.files[oD].name);
oB0.setAttribute('data-src', lastfile);
oB1 = new Object({
'file_prev': file_prev.id,
'file_p': file_p,
'file': what.files[oD],
'kill': kill
});
stoargearr.push(oB1);
createtoast(['Filechecker', 'the ' + what.files[oD].name + ' is getting checked.', 3e3, true, true, ['bg-info', 'text-dark', 'rounded', 'px-2', 'mx-1']]);
createItems('upload', 's', what.files[oD].name, 'name:' + what.files[oD].name + ';nr:' + oD + ';filesize:' + what.files[oD].size + ';filesizehuman:' + Math.abs(what.files[oD].size / 1024 / 1024).toFixed(2) + ';lastmodified:' + new Date(what.files[oD].lastModified).toUTCString() + ';type:' + what.files[oD].type + ';');
};
};
};
};
if (stoargearr.length == what.files.length) {
waitfor(stoargearr);
};
} else {
reader.readAsDataURL(what.files[oD]);
};
};
};```
if (quest1 != null) {
quest1.innerHTML = 'processing ' + file_p;
};

此块不输出音频文件。

最新更新