2014-09-09 36 views
5

Speriamo che qualcuno possa aiutare con questo.flow.js upload file on click

Fondamentalmente, stiamo utilizzando il flusso ng https://github.com/flowjs/ng-flow per consentire il trascinamento della selezione degli elementi. Inoltre stiamo usando MVC 4.

Tutto sembra funzionare come dovrebbe, tuttavia, vorremmo personalizzare questo, in modo che

  1. Gli articoli sono trascinati nella casella di upload e memorizzati in ambito (come lo fa ora)
  2. Gli articoli sono non fisicamente caricato fino a quando un pulsante è stato cliccato

Cosa abbiamo provato finora? : -

nella configurazione, abbiamo disattivato il bersaglio in modo da non caricare immediatamente

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

sulla pagina attuale, abbiamo creato un pulsante, con una ng clic che passerà attraverso the flow.files

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

nel controller, abbiamo la funzione, uploadme, che accetta i flussi come parametro. Looping attraverso questo paramater e inviare ogni "file" al controller di upload

$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 
     }) 
    }); 

} 

regolatore MVC, 'upload'. questo viene chiamato, tuttavia, il file è sempre nullo

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(); 
    } 

C'è qualcosa che ci manca? o c'è un modo diverso per raggiungere questo obiettivo.

+0

Sto cercando una risposta simile. È un po 'frustrante perché la demo "di base" del repository github ng-flow fa esattamente questo anche se è fatta esattamente allo stesso modo della mia implementazione. La mia versione carica immediatamente i file quando vengono rilasciati mentre li tengono finché non si fa clic sul pulsante. Hai mai risolto questo? – Askdesigners

+0

@Askdesigners ciao, sì risolto, si prega di vedere la risposta, spero che aiuti. – Simon

risposta

10

sono riusciti a risolvere questo ...

rimuovere la riga da div tag

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

poi onclick di un pulsante, passare a $ scorrere in un paramater

ng-click="InsertItems($flow)" 

Javascript : -

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

Ok fantastico! Ci proverò. Grazie! – Askdesigners