Есть много вопросов о загрузке файлов с Android, но большинство из них без ответа, и фактически ни один из них не связан с javascript или php. Я вижу странное поведение при выборе файла для загрузки на Android (4.4.4) собственного браузера (HTC One_M8), и то, что он дает мне, это;Загрузка файла Android - неправильное имя файла, собственный браузер
C: \ fakepath \ Изображение: 12045
"Fakepath" часть оленья кожа беспокоит меня, что беспокоит меня то, что я не могу получить имя файла из/входного типа = "файл"/html тегов. Я отправляю файлы с $ .ajax, и он работает на Chrome, FF, Safari (рабочий стол & iPhone). Он также работает на моем M8 с Chrome, но не с собственным браузером.
Это то, что я использую для получения выбранных файлов;
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 или я должен использовать другой подход.
Кто-нибудь сталкивался с той же проблемой и, возможно, нашел решение?