安卓文件上传 - 错误的文件名,本机浏览器

Android file upload - wrong file name, native browser

本文关键字:文件名 本机 浏览器 错误 文件      更新时间:2023-09-26
有很多

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

C:''

假路径''图像:12045

"假路径"部分不会打扰我,困扰我的是我无法从/input type="file"/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);
    }
}

这就是我送他们处理的方式.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 本机浏览器中的错误,还是我必须使用不同的方法。

有没有人遇到同样的问题,也许找到了解决方案?

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

您可以在此处遵循我的解决方案。

在过去的几个小时里,我研究的是,由于上述安全检查,上传的文件在Android手机的图库中时发生了。没有文件名、扩展名、大小是可读的。

要解决此问题,请执行以下操作:1-单击浏览按钮,您将被带到设备的图库。2-在图库的右上角,单击选项图像("...")并启用"内部存储"。3-确保您上传的文件位于内部存储中。4-上传时访问"内部存储"选项。5-文件应显示正确的名称。