2013-08-13 5 views
1

Я пытаюсь воссоздать этот пример в моем проекте, чтобы добавить перетащить элемент в додзё пользователя:Dojo Uploader с перетаскиванием

http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/form/tests/test_Uploader.html

Копирование и тот же код в jsfiddle или в моем приложении линии

if(uploader.addDropTarget && uploader.uploadType=='html5'){ 

возвращает неопределенное значение для addDropTarget и фрейма для uploadType. Я попробовал его с различными браузерами и даже добавил силу: html5 в загрузчик, но ничего не изменилось.

Обратите внимание, что все работает нормально, кроме как от dnd.

я использую dojo 1.8.1.

+0

Вы можете вставить код? Вы установили ввод файла с несколькими = "true"? Вам нужен плагин html5? Вы пытались установить параметр uploader «force» на «html5»? Какой браузер вы используете? ... – Philippe

+0

Да, я добавил это, и мне также нужен плагин html5. Все работает в отношении выбора файла и загрузки. Я просто пытаюсь включить функцию dnd. Протестировано хромом и firefox. –

+0

О, извините. Можете ли вы разместить свой код? – Philippe

ответ

4

В dojo 1.8 загрузчик еще не полностью совместим с AMD. Итак, чтобы сделать пример из тестов магистральных соединений в 1.8, вам необходимо создать программный загрузчик программно, используя конструктор dojox.form.Uploader, а не необходимый модуль AMD. Как следует:

<form method="post" action="UploadFile.php" id="myForm" enctype="multipart/form-data" > 
    <fieldset> 
     <legend>DnD Test</legend> 
     <input class="browseButton" id="uploader"/> 
     <input type="submit" label="Submit" data-dojo-type="dijit/form/Button" /> 
     <div id="files" data-dojo-type="dojox/form/uploader/FileList" data-dojo-props='uploaderId:"uploader"' ></div> 
    </fieldset> 
</form> 

<div id="dropTarget">Drop files here !</div> 

И в JavaScript:

require([ 
    'dojo/parser', 
    'dojo/dom', 
    'dijit/registry', 
    'dojox/form/Uploader', 
    'dojox/form/uploader/FileList', 
    'dojox/form/uploader/plugins/HTML5', 
    'dojo/domReady!' 
], function(parser, dom, registry, ready){ 

    var dropTarget = dom.byId('dropTarget'), uploader; 

    parser.parse().then(function(){ 

     // You need to use dojox.form.Uploader, as in dojo 1.8, 
     // the module is not fully AMD compliant yet. 

     uploader = new dojox.form.Uploader({ 
      name:'uploadedfile', 
      label:'Select Some Files', 
      multiple:true, 
      force:'html5' 
     }, 'uploader'); 

     uploader.startup(); 

     if(require.has('file-multiple')){ 
      console.debug("Adding a new drop target"); 
      registry.byId('uploader').addDropTarget(dropTarget); 
     } 
    }); 
}); 

См http://jsfiddle.net/psoares/6r2jZ/

+0

Отлично! Однако теперь кнопка загрузки не работает. Любые подсказки? –

+1

uploader.startup()? – Philippe

Смежные вопросы