拖放放入 Safari 5 会导致意外的文件名

发布于 2024-12-08 16:15:04 字数 335 浏览 0 评论 0原文

当我将文件放入 Safari 时,我得到了奇怪的文件名。有时它有效,有时会出现奇怪的名称。我正在使用 evt.dataTransfer.files 来读取删除的文件。

如何缓解这种情况?

Safari 屏幕和我放入的文件

第 14 行调试屏幕截图

随机文件名

I'm getting strange file names when I drop files into Safari. Sometimes it works, sometimes the weird names appear. I'm using evt.dataTransfer.files to read the dropped files.

How can this be mitigated?

Screen of Safari and the files I dropped in

Debug screenshot at line 14

random files names

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

大海や 2024-12-15 16:15:04

对于其他想尝试这个的人...这是一个完整的页面。只需在 Safari 中打开它并将文件拖放到拖放区域即可。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        #dropbox { border: 1px dashed #ccc; padding: 10px; margin: 10px 0; }
        #dropbox:hover { border: 1px dashed green; }
    </style>
    <script type="text/javascript">
        function noop(evt) {
            evt.stopPropagation();
            evt.preventDefault();
        }
        function drop(evt) {
            evt.stopPropagation();
            evt.preventDefault();

            var div = document.getElementById("files");
            var files = evt.dataTransfer.files;
            for (i = 0; i < files.length; i++) {
                var file = files[i];
                div.innerHTML += i + "=" + file.name + " " + file.size + " " + file.type + "<br/>";
            }
        }
        function addlistener() {
            document.getElementById("dropbox").addEventListener("dragenter", noop, false);
            document.getElementById("dropbox").addEventListener("dragover", noop, false);
            document.getElementById("dropbox").addEventListener("dragexit", noop, false);
            document.getElementById("dropbox").addEventListener("drop", drop, false);
        }
    </script>
</head>
<body onload="addlistener()">
    <div id="dropbox">drop zone</div>
    <div id="files"></div>
</body>
</html>

这些是我得到的结果

0=Chrysanthemum.jpg纽`d崰ၐ7 0 
1=Desert.jpgpg 0 
2=Hydrangeas.jpg 595284 image/jpeg
3=Jellyfish.jpg 0 
4=Koala.jpgȘ 0 
5=Lighthouse.jpg 561276 image/jpeg
6=Penguins.jpg 777835 image/jpeg
7=Tulips.jpg 620888 image/jpeg

for anyone else who would like to try this... here is a full page. Just open it in Safari and drop files in to the drop zone.

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        #dropbox { border: 1px dashed #ccc; padding: 10px; margin: 10px 0; }
        #dropbox:hover { border: 1px dashed green; }
    </style>
    <script type="text/javascript">
        function noop(evt) {
            evt.stopPropagation();
            evt.preventDefault();
        }
        function drop(evt) {
            evt.stopPropagation();
            evt.preventDefault();

            var div = document.getElementById("files");
            var files = evt.dataTransfer.files;
            for (i = 0; i < files.length; i++) {
                var file = files[i];
                div.innerHTML += i + "=" + file.name + " " + file.size + " " + file.type + "<br/>";
            }
        }
        function addlistener() {
            document.getElementById("dropbox").addEventListener("dragenter", noop, false);
            document.getElementById("dropbox").addEventListener("dragover", noop, false);
            document.getElementById("dropbox").addEventListener("dragexit", noop, false);
            document.getElementById("dropbox").addEventListener("drop", drop, false);
        }
    </script>
</head>
<body onload="addlistener()">
    <div id="dropbox">drop zone</div>
    <div id="files"></div>
</body>
</html>

these are the results i get

0=Chrysanthemum.jpg纽`d崰ၐ7 0 
1=Desert.jpgpg 0 
2=Hydrangeas.jpg 595284 image/jpeg
3=Jellyfish.jpg 0 
4=Koala.jpgȘ 0 
5=Lighthouse.jpg 561276 image/jpeg
6=Penguins.jpg 777835 image/jpeg
7=Tulips.jpg 620888 image/jpeg
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文