HTML5 文件输入的文件扩展名行为不一致
inconsistant file extension behavior for HTML5 file input
我正在尝试制作本地主机文件上传程序,以便我可以将文件从手机上传到桌面,但是HTML5文件输入控件出现问题。
以下是演示该问题的代码:
<!DOCTYPE html>
<html>
<head>
<title>File Input Problem Demo</title>
<script>
let hFileInput = null;
function performSetup() {
hFileInput = document.getElementById('fileInput');
}
function showFilename() {
alert(hFileInput.value);
}
</script>
</head>
<body onload="performSetup()">
<input id="fileInput" type="file"></input>
<br />
<button onclick="showFilename()">show filename</button>
</body>
</html>
在我的手机上,当我将文件输入到文件输入中并单击按钮时,它会显示不带扩展名的文件名,而在我的主/主机/主机上,当我按下按钮时,它会显示完整的文件名,包括扩展名。
这反过来又使我的 php 上传脚本出错,因为它无法找出上传的文件具有的扩展名。
有人可以解释一下这种行为以及我如何使其行为更一致吗?
某些文件选择器在选择文件时会省略文件扩展名。这意味着文件选择器不会向文件输入元素提供文件扩展名信息,这反过来意味着上传文件时没有扩展名。
处理这种情况的最简单方法是创建一个警告,当用户选择没有扩展名信息的文件时,该警告会显示,让他们知道他们的文件选择器可能省略了扩展名,以便他们使用另一个文件选择器(手机/平板电脑通常允许您选择要选择文件的应用程序, 而Windows通常只有一个标准的选择对话框)。
此问题可通过让用户使用不省略扩展名的文件选择器来解决(音乐选择器通常省略扩展名,视频选择器和照片选择器也是如此,而通用文件选择器倾向于保留扩展名)。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- PERL-下载CSV文件不完整
- AJAX上传文件不起作用
- 在Hapi.js中提供静态JavaScript文件不起作用
- Android和JavaScript解析API之间不一致
- Javascript的行为与PHP包含文件不一致
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 点击链接行为不一致
- Passport.js`isAuthenticated()`不一致的行为;当它应该是真的时候是假的
- 如果文件不存在,fs.watch是否有错误处理程序
- 从HTML链接时,Javascript文件不起作用
- 与显示不一致
- Haskell调用Node.js文件不起作用
- Ext 4.2.1 模型日期解析在浏览器之间不一致
- 通过 Dropbox API 上传时的文件内容不一致
- 如何使用 Node.js 下载文件(不使用第三方库)
- JavaScript - 对象属性不一致
- Dropzone js上传多个文件不一致
- HTML5 文件输入的文件扩展名行为不一致