情况是这样的,
我需要在一个网页上设置一个热区<div></div>
然后实现从文件夹中把文件拖曳到该热区中,然后利用js的ondrop事件的event.dataTransfer.files[0]取得文件的相关信息。
问题是我只能取得文件的名字等相关信息,但是取不到文件的在本地电脑上的路径。
请问该路径应该如何取得? 是否因为安全问题而不能取?

解决方案 »

  1.   

    号称单纯js因安全性问题无法实现浏览器拖放,需要activex控件帮助
    看这个帖子能对你有用吗
    http://topic.csdn.net/u/20071203/16/38D3C557-CB3A-4030-8F29-D35D1699D40C.html
      

  2.   

    可以用Flash做吧!
    目前这个功能Gmail、163邮箱、QQ邮箱都有,lz可以看下人家是怎么实现的!
    细节看不到至少可以知道是用什么技术做的!
      

  3.   

    HTML5的文件APIhttp://www.javaeye.com/topic/732049
      

  4.   

    囧,看了一下貌似使用HTML5做的
    看这里http://reeze.cn/2010/04/25/make-your-site-drop-uploadable-with-html5s-file-api-like-gmail-does/
      

  5.   

    // 调用这个函数
    handleFiles(e.dataTransfer.files);  /**
     * 读取文件
     * 
     * @since Chrome6 FireFox3.6
     */
    function handleFiles(files) {
    for (var index = 0; index < files.length; index++) {
    var file = files[index]; if (!file.type.match(/image*/)) {
    continue;
    }

    var img = document.createElement('img');
    img.file = file;
    document.getElementById('drop').appendChild(img);
    var reader = new FileReader();
    reader.onload = (function(aImg) {
    return function(e) {
    aImg.src = e.target.result;
    };
    })(img);

    reader.readAsDataURL(file);
    }
    }
      

  6.   

    大致就是用FileReader的readAsDataURL读取本地文件。
    但是FileReader在chrome5里不支持。只有Chrome6才支持。请小心使用。
      

  7.   

    发现网易163确实也实现了,不错。
    应该是用的11楼的方式,而不是activex
      

  8.   

    以前做个这个文件拖动的东西,但是需要写个Active控件,来支持拖拽。
      

  9.   

    刚试了下QQ邮箱是用个Applet做的,兼容性应该不错
      

  10.   

          Flex做这个最好了。。
      

  11.   

    目前还没见过用java做的,一般都是flash做。