Передача пути к загруженному файлу из HTML5 перетащите в поле ввода

Я работаю над приложением (в Node.js, которое не имеет отношения к этому случаю), которое позволяет пользователю загружать изображение. Он отлично работает, используя форму с полем ввода (type = & quot; file & quot;).

Однако я хочу иметь возможность загружать изображения, используя перетаскивание HTML5. Насколько я понимаю, можно перетаскивать изображение на клиент, и миниатюра изображения отображается в элементе div. Однако мне действительно нужна помощь с загрузкой файлов.

Дело в том, что я хочу использовать форму, которую я использую сейчас, и (каким-то образом) передать путь файла к полю ввода, то есть поток будет работать точно так же, как сейчас, но вместо выбора файла просматривая его, я хочу прикрепить его к полю ввода с помощью перетаскивания.

В приведенном ниже js-коде для перетаскивания файл, который был перетащен на клиент, хранится в переменной «file», и я могу использовать «file.name», «file.type» quot; и & quot; file.size & quot; точно так же, как он работает с формой. Однако я не могу получить доступ к файлам "путь" (file.path), который делает невозможным доступ к стороне файлового сервера для загрузки так же, как я делаю это раньше.

Вопрос заключается в том, можно ли передать объект файла в поле ввода после перетаскивания файла на клиент, чтобы я мог нажать «отправить». и загрузить файл? Если так, как это могло быть сделано?

Заранее спасибо!

Dropbox, а также форму, которую я использую для загрузки файлов:

<code><div id='upload'>
    <article>
        <div id='holder'>
            <p id='status'>File API and FileReader API not supported</p>
        </div>
    </article> 

    <form method='post' enctype='multipart/form-data' action='/file-upload'>
        <p>
            <input type='file' name='thumbnail'>
        </p>
        <p>
            <input type='submit'>
        </p>
    </form>
</div>
</code>

код для перетаскивания:

<code>uploadImage: function(){
    var holder = document.getElementById('holder'),
        state = document.getElementById('status');

    if (typeof window.FileReader === 'undefined') {
      state.className = 'fail';
    } else {
      state.className = 'success';
      state.innerHTML = 'File API & FileReader available';
    }

    holder.ondragover = function () { this.className = 'hover'; return false; };

    holder.ondragend = function () { this.className = ''; return false; };

    holder.ondrop = function (e) {
      this.className = '';
      e.preventDefault();

      var file = e.dataTransfer.files[0],
          reader = new FileReader();

      reader.onload = function (event) {
        holder.style.background = 'url(' + event.target.result + ') no-repeat center';
      };

      reader.readAsDataURL(file);

      return false;
    };
},
</code>

Ответы на вопрос(2)

Ваш ответ на вопрос