【问题标题】:Drag and drop image into a web form将图像拖放到 Web 表单中
【发布时间】:2009-02-18 21:30:17
【问题描述】:

我们有一个允许用户上传图片的网页(主要是 HTML javascript 和 PHP)。我们有正常的浏览按钮,它工作正常。但是,我们希望添加将图像拖放到文本字段中的功能。

gmail 允许您在他们的邮件应用程序中执行此操作,因此这是可能的。我们想到的唯一方法是创建一个 Java 小程序来完成所有这些工作,但这最终会变得非常混乱。

有人做过吗?它是如何工作的?

编辑:我在 Mac 上使用 firefox。我的大多数用户可能会在 Windows 上使用 IE。

谢谢

【问题讨论】:

    标签: php javascript html drag-and-drop applet


    【解决方案1】:

    您可以在 XUL(使其有效地成为仅限 Firefox 的解决方案)或 ActiveX(仅限 IE 的解决方案)中执行此操作。

    【讨论】:

      【解决方案2】:

      这是一个老问题,但它出现在我的搜索结果中。

      因此,作为参考,请使用 HTML5 文件类和拖放。

      这里有详细的文章:http://www.html5rocks.com/en/tutorials/file/dndfiles/

      【讨论】:

        【解决方案3】:

        我尝试过拖放并为他们的编辑器创建图像。如果文件在网页上,它将选择路径,但如果它在本地驱动器上,则路径将为“file://c:....”,不会与消息一起上传,而是最终成为损坏的图像。

        出于安全原因,浏览器无权访问本地文件系统,所以我怀疑这是否会按照您描述的方式工作。

        【讨论】:

        • 没有在 gmail 中如果您将图像拖到文本中,它会将其包含在电子邮件中。我不确定他们是怎么做到的,但它只是一个带有红点的盒子,直到你发送它......
        【解决方案4】:

        将文件拖放到普通输入字段中会将图像的本地路径复制到输入字段中,但这对您来说毫无价值,因为 标签的 .value 属性是只读的以确保安全原因。

        您会注意到 gmail 仅允许您将图像(用于上传)拖放到 输入,而不是任何其他字段。

        我想你想问的是"how do I style a <input type='file'> tag like google",这完全是另一个话题。

        编辑:好的,在 IE 中你不能将文件拖到 标签中

        【讨论】:

        • 不适合我(至少在 Mac 上)。当我将图像拖到文本字段(例如用于上传用户图片)时,浏览器要么将图像作为整个窗口加载,要么什么都不做......
        • 转到新电子邮件并单击“附加文件”,然后将文件拖到显示“未选择文件”的文本上,看看它是否有效。它可能是特定于浏览器的。
        【解决方案5】:

        完成此任务的最佳方法是制作一个独立的 Adob​​e AIR,例如 https://www.photoshop.com/express 的照片上传器


        您可以在这篇文章中找到一些重要信息: http://devzone.zend.com/article/3650-Desktop-Image-Uploaders-Using-Adobe-AIR-and-JavaScript

        【讨论】:

          【解决方案6】:

          我想我有办法解决烦人的 FF3 本地文件系统问题,但我需要一段 javascript 来测试。如何从文件上传表单中读取本地文件路径?请停止使用“闪存是一种解决方案”。我是一名 Flash 开发人员,但我什至认为这不是一个好的解决方案。

          【讨论】:

            【解决方案7】:

            您是否偶然安装了这个 Firefox 扩展程序?

            http://www.teslacore.it/wiki/index.php?title=DragDropUpload

            如果有无需安装外部插件或扩展的解决方案,我会感到惊讶。正如有人提到的那样,这将是一个安全问题。网站将能够从人们的计算机中抓取文件并在他们不知情的情况下上传它们。

            【讨论】:

              【解决方案8】:

              查看 SWELL 框架。它基于 javascript。

              【讨论】:

                猜你喜欢
                • 2015-07-24
                • 1970-01-01
                • 2011-03-31
                • 1970-01-01
                • 1970-01-01
                • 2018-07-08
                • 1970-01-01
                • 2015-11-07
                • 1970-01-01
                相关资源
                最近更新 更多