安卓文件上传 - 错误的文件名,本机浏览器
Android file upload - wrong file name, native browser
有很多
关于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-文件应显示正确的名称。
相关文章:
- '图片'没有用于本机道具的propType'RCTImageView.overlayColor&
- 在iOS和Android上使用React native时,我还能使用本机第三方lirbraries吗
- javascript函数访问ios本机功能
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- 在浏览器中检测本机或第三方PDF插件
- 将事件发送到javascript文档的react本机模块是否正确
- 将对应用内购买的支持构建为react本机代码
- 如何在Windows上用javascript构建本机应用程序
- 在视图中渲染多个按钮以编程方式进行本机反应
- 在本机挂钩之前加载可安装挂钩
- 如何使用UI Automation JavaScript Reference for iOS appium获取本机应用程
- 控制台中的“function floor(){[本机代码]}”是什么
- 如何将chrome.tabCapture流从js传递到c++PNACL本机代码
- WKWebview-Javascript和;本机代码
- 将回调/函数从本机发送到javascript
- 为什么我得到Chrome本机消息“;找不到指定的本机消息传递主机&”;
- 检测未绑定的本机函数,如“Array.push”
- 离子 - 本机对话框
- 安卓文件上传 - 错误的文件名,本机浏览器
- <输入类型='文件'>提供了URL编码的文件名,导致Android本机浏览器上的FileRea