gpt4 book ai didi

javascript - Android文件上传 - 文件名错误, native 浏览器

转载 作者:行者123 更新时间:2023-11-29 14:17:44 24 4
gpt4 key购买 nike

有很多关于Android 文件上传的问题,但大多数都没有答案,实际上它们都与javascript 或php 无关。在 Android (4.4.4) native 浏览器 (HTC One_M8) 上选择要上传的文件时,我看到了奇怪的行为,它给我的是这个;

C:\fakepath\image:12045

“Fakepath”部分并不困扰我,困扰我的是我无法从/input type="file"/html 标签中获取文件名。我用 $.ajax 发送文件,它适用于 Chrome、FF、Safari(桌面和 iPhone),它也适用于我的 M8 和 Chrome,但不适用于 native 浏览器。

这是我用来获取选定文件的方法;

var filedata = document.getElementById("userFile");
formdata = false;
if (window.FormData) {
formdata = new FormData();
}
var i = 0, len = filedata.files.length, img, reader, file;

for (; i < len; i++) {
file = filedata.files[i];

if (window.FileReader) {
reader = new FileReader();
reader.onloadend = function(e) {
// showUploadedItem(e.target.result, file.fileName);
};
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("userFile[]", file);
}
}

这就是我将它们发送到 handle.php 的方式

$.ajax({
url: 'handle.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
}
return myXhr;
},
data: formdata,
dataType:'json',
cache: false,
contentType: false,
processData: false,
beforeSend: function(xhr, opt) {
$('#control-console').append($('input[type=file]').val());
$('input[type=file]').val("");
},
success: function() {
},
complete: function(podatki) {
$('#control-console').append(podatki.responseJSON.name);
console.log(podatki)
$.each(podatki.responseJSON.name, function(i, val) {
console.log(val);
insertFrame(val);
});
processing = false;

}
});

我没有找到任何关于此的文档,所以我真的不知道这是 Android native 浏览器中的错误还是我必须使用其他方法。

有没有人遇到同样的问题并且可能找到了解决方案?

最佳答案

我已经研究了很多,并且只为 android 做了一个解决方案。当您在浏览器和 iPhone 中时,您可以使用您的解决方案,因为它运行良好。但是,安卓有一个安全问题。所以,我必须为 android 制定一个解决方案。

你可以按照我的解决方案here .

关于javascript - Android文件上传 - 文件名错误, native 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com