拖放与使用快捷方式文件直接单击上传之间的不同行为
Differing behaviour between drag and drop vs direct click upload with shortcut files
我有一个基本的文件上传小部件,几乎在所有情况下都可以正常工作,但我刚刚注意到它处理快捷方式的方式似乎与所有其他文件类型不同。
所以比如现在的问题是,当用户点击直接上传文件的时候,你给它一个快捷方式,它会自动解析快捷方式指向的底层文件,大家都很高兴。
但是,如果您改为将文件拖放到它通过底层 .lnk
快捷方式文件发送的控件上,那么只是想知道为什么这里有不同的行为,如果我做错了什么在这里或者如果因为浏览器将这两件事解释为不同的交互,所以在拖放场景中不遵循快捷方式是正确的。
文件数据解析为:
var files = fileSelectionEvent.target.files || fileSelectionEvent.dataTransfer.files;
由于文件输入和拖放最终都指向同一个函数,而 js 事件刚刚被捕获并传递。
当您点击上传按钮时,它会显示一个系统提供的文件选择器。当你select一个快捷方式文件(*.lnk)时,Windows会自动将其替换为快捷方式指向的真实文件。
当您拖放文件时,Windows 不处理它们。所以快捷方式文件直接被浏览器接收。
我有一个基本的文件上传小部件,几乎在所有情况下都可以正常工作,但我刚刚注意到它处理快捷方式的方式似乎与所有其他文件类型不同。
所以比如现在的问题是,当用户点击直接上传文件的时候,你给它一个快捷方式,它会自动解析快捷方式指向的底层文件,大家都很高兴。
但是,如果您改为将文件拖放到它通过底层 .lnk
快捷方式文件发送的控件上,那么只是想知道为什么这里有不同的行为,如果我做错了什么在这里或者如果因为浏览器将这两件事解释为不同的交互,所以在拖放场景中不遵循快捷方式是正确的。
文件数据解析为:
var files = fileSelectionEvent.target.files || fileSelectionEvent.dataTransfer.files;
由于文件输入和拖放最终都指向同一个函数,而 js 事件刚刚被捕获并传递。
当您点击上传按钮时,它会显示一个系统提供的文件选择器。当你select一个快捷方式文件(*.lnk)时,Windows会自动将其替换为快捷方式指向的真实文件。
当您拖放文件时,Windows 不处理它们。所以快捷方式文件直接被浏览器接收。