代码之家  ›  专栏  ›  技术社区  ›  niaher

显示所选文件而不回发

  •  2
  • niaher  · 技术社区  · 15 年前

    我有一个 <input type="file"> 用户在其中选择图像文件。是否可以在页面上显示此图像而不首先将其上载到服务器?基本上我想做的是使用用户计算机上的本地文件。

    PS-我正在使用JQuery。

    5 回复  |  直到 15 年前
        1
  •  5
  •   Tatu Ulmanen    15 年前

    这是不可能的,即使使用 file:// 不会像从文件输入框中获取值那样工作,只获取文件名,而不获取路径。所以不可能知道图像的位置。要使其工作,您必须使用基于Flash的上传程序。

    给你一条路,唯一的是它永远都是 c:\fakepath\filename.png . 我猜浏览器正在阻止JavaScript从文件系统获取任何有意义的信息。

    尝试上载文件时不同浏览器的返回值 C:\test.txt :

    • 火狐3.5.6
      test.txt


    • test.txt


    • C:\fake_path\test.txt


    • C:\fakepath\test.txt

        2
  •  3
  •   kgiannakakis    15 年前

    不,这是不可能的。Javascript无法访问本地文件系统。

        3
  •  1
  •   Pekka    15 年前

    这在Javascript中是不可靠的。可以使用基于Flash的上传程序,如 this one .

        4
  •  0
  •   Ravi Vanapalli    15 年前

    我认为这很容易。

    document.getElementByid('img1').src = document.getElementById('fileUpload').value;
    

        5
  •  0
  •   Greg Lyon    14 年前

    这在Internet Explorer中是可能的,但是您的用户必须将您的站点添加到“受信任的站点”,或者C:\fakepath\是您将看到的全部内容。一旦添加到受信任的站点,您就可以访问真实路径。

    不要指望找到一个伟大的跨浏览器解决方案!