为什么 IE9 不接受文件名长度超过 230 的文件?
Why doesnt IE9 accept files with filename length over 230?
我想做什么?
我试图在使用 input type="file" 标记选择文件后对其进行验证。其中一项测试是确保文件名长度少于 200 个字符。
到目前为止我做了什么?
http://jsfiddle.net/joanferns00/ajeec780/4/
当我尝试上传以下示例文件时,(文件名长度为 230 的文件)
234_aaaaa6JHmFop6Va6JHmFRsdK7fxn1HtVkpl5UREy7cn4yC4hlHuW87qDp2fEg3YQlZCETrkBbLqIgtAqlklyahRIH0hCzSUO234_op6Va6JHmFRsdK7fxn1HtVkpl5UREy7cn4yC4hlHuW87qDp2fEg3YQlZCETrkBbLqIgtAqlklyahRIH0hCzSUOI3YQlZCETrkBbLqIgtAqlklkBbLqIgtAqlkl.txt
function getLength() {
//alert(.length);
var fullPath = document.getElementById("myfile").value;
if (fullPath) {
var startIndex = (fullPath.indexOf('\') >= 0 ? fullPath.lastIndexOf('\') : fullPath.lastIndexOf('/'));
var filename = fullPath.substring(startIndex);
if (filename.indexOf('\') === 0 || filename.indexOf('/') === 0) {
filename = filename.substring(1);
}
alert(filename.length);
}
}
我期待什么?
我希望 IE9 像在 Chrome 和 FireFox
中一样提醒文本的长度
发生了什么?
Firefox 和 chrome 给了我 230 的值,但是 IE9 甚至不允许我上传文件。
有没有办法让 IE9 像 Chrome 和 Firefox 那样识别这个文件并提示文件名长度?
Windows 将文件路径的长度限制为 255 个字符(文件路径+名称,包括扩展名和 .
),+ 3 个额外字符用于 C:\
来源:http://vlaurie.com/computers2/Articles/filenames.htm
我在尝试解压缩大的嵌套 zip 文件时总是遇到它。
IE9 使情况变得更糟,因为它包含 file
输入元素的文件名的完整路径,包括开头 "C:\".
来源:http://support.softartisans.com/kbview_892.aspx
因此 windows,文件名的理论限制是 258 个字符,包括 C:\
。但是当 IE9 抓取那个文件时,它显示 complete 路径,包括 C:\
,所以你可以上传到 IE9 的最大文件名是 255 个字符,包括 C:\
例如,这将不上传
C:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890axxx.txt
但这会
C:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890a.txt
和 windows 甚至不允许您将文件命名为:
C:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890axxx00000.txt
因为太长了。
很有可能,您的文件位于 "magical range" 中的某处,它大于 255,因此 IE 不允许,但小于 259,因此仍然被 Windows 允许。 Firefox 和 Chrome 不在乎,新版本的 IE.
也不在乎 IE9
。
你无能为力
我想做什么?
我试图在使用 input type="file" 标记选择文件后对其进行验证。其中一项测试是确保文件名长度少于 200 个字符。
到目前为止我做了什么?
http://jsfiddle.net/joanferns00/ajeec780/4/ 当我尝试上传以下示例文件时,(文件名长度为 230 的文件) 234_aaaaa6JHmFop6Va6JHmFRsdK7fxn1HtVkpl5UREy7cn4yC4hlHuW87qDp2fEg3YQlZCETrkBbLqIgtAqlklyahRIH0hCzSUO234_op6Va6JHmFRsdK7fxn1HtVkpl5UREy7cn4yC4hlHuW87qDp2fEg3YQlZCETrkBbLqIgtAqlklyahRIH0hCzSUOI3YQlZCETrkBbLqIgtAqlklkBbLqIgtAqlkl.txt
function getLength() {
//alert(.length);
var fullPath = document.getElementById("myfile").value;
if (fullPath) {
var startIndex = (fullPath.indexOf('\') >= 0 ? fullPath.lastIndexOf('\') : fullPath.lastIndexOf('/'));
var filename = fullPath.substring(startIndex);
if (filename.indexOf('\') === 0 || filename.indexOf('/') === 0) {
filename = filename.substring(1);
}
alert(filename.length);
}
}
我期待什么?
我希望 IE9 像在 Chrome 和 FireFox
中一样提醒文本的长度发生了什么?
Firefox 和 chrome 给了我 230 的值,但是 IE9 甚至不允许我上传文件。
有没有办法让 IE9 像 Chrome 和 Firefox 那样识别这个文件并提示文件名长度?
Windows 将文件路径的长度限制为 255 个字符(文件路径+名称,包括扩展名和 .
),+ 3 个额外字符用于 C:\
来源:http://vlaurie.com/computers2/Articles/filenames.htm
我在尝试解压缩大的嵌套 zip 文件时总是遇到它。
IE9 使情况变得更糟,因为它包含 file
输入元素的文件名的完整路径,包括开头 "C:\".
来源:http://support.softartisans.com/kbview_892.aspx
因此 windows,文件名的理论限制是 258 个字符,包括 C:\
。但是当 IE9 抓取那个文件时,它显示 complete 路径,包括 C:\
,所以你可以上传到 IE9 的最大文件名是 255 个字符,包括 C:\
例如,这将不上传
C:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890axxx.txt
但这会
C:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890a.txt
和 windows 甚至不允许您将文件命名为:
C:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890axxx00000.txt
因为太长了。
很有可能,您的文件位于 "magical range" 中的某处,它大于 255,因此 IE 不允许,但小于 259,因此仍然被 Windows 允许。 Firefox 和 Chrome 不在乎,新版本的 IE.
也不在乎 IE9
。