flow.js загрузить файл по клику

Надеюсь, кто-то может помочь с этим.

По сути, мы используем ng-flow https://github.com/flowjs/ng-flow чтобы разрешить перетаскивание для загрузки элементов. Мы также используем MVC 4.

Все, кажется, работает как следует, однако мы хотели бы настроить это так, чтобы

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

Что мы уже пробовали?:-

в конфиге мы отключили цель, чтобы она не загружалась сразу

.config(['flowFactoryProvider', function (flowFactoryProvider) {
flowFactoryProvider.defaults = {
  target: '',
  permanentErrors: [500, 501],
  maxChunkRetries: 1,
  chunkRetryInterval: 5000,
  simultaneousUploads: 1
};

на фактической странице мы создали кнопку с щелчком мыши, которая будет проходить через поток.

<input type="button" value="Click Me" ng-click="uploadme($flow.files)">

в контроллере у нас есть функция uploadme, которая принимает потоки в качестве параметра. Перебирая этот параметр и отправляя каждый "файл" в контроллер загрузки

$scope.uploadme= function (flows)
{
    angular.forEach(flows, function (flow) {
        var fd = new FormData();
        fd.append("file", flow);
        $http.post("upload", fd, {
            withCredentials: true,
            headers: {'Content-Type': undefined },
            transformRequest: angular.identity
        })
    });

}

MVC контроллер, "загрузить". это вызывается, однако, файл всегда нулевой

public ActionResult upload(HttpPostedFileBase file)
    {
        if (file.ContentLength > 0)
        {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);
        }
        return View();
    } 

Есть что-то, чего нам не хватает? или есть другой способ добиться этого.

2 ответа

Решение

Удалось решить это...

удалить строку из тега div

flow-files-submitted="$flow.upload()"

затем нажмите кнопку, передайте $flow в качестве параметра

ng-click="InsertItems($flow)"

Javascript:-

$scope.InsertItems = function(e)
{
//Do what you need to do
e.upload();
}

Я только хочу добавить ссылку на хороший ответ на этот вопрос: загрузка NG-потока программно

Надеюсь, поможет.

Другие вопросы по тегам