Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Dropzone maxFiles non funziona

    Come da titolo vorrei impostare il numero massimo di file caricati ( a me serve uno ma potrei avere altre necessit) .

    Qui il jsfiddle :

    http://jsfiddle.net/3dthc8sb/

    Ma maxfile non funziona...

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,492
    Ciao,
    non l'ho mai usato, ma se non funziona puoi sempre fare un check quando aggiungi il file, nel caso abbia raggiunto il numero massimo dei file quello che aggiungi lo togli direttamente:

    codice:
     this.on("addedfile", function(file){
        	if(this.files.length>1)
          	   this.removeFile(file);
          else
               console.log('file added');
      	});
    http://jsfiddle.net/7c3srjt8/

  3. #3
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Ciao,
    non l'ho mai usato, ma se non funziona puoi sempre fare un check quando aggiungi il file, nel caso abbia raggiunto il numero massimo dei file quello che aggiungi lo togli direttamente:

    codice:
     this.on("addedfile", function(file){
            if(this.files.length>1)
                 this.removeFile(file);
          else
               console.log('file added');
          });
    http://jsfiddle.net/7c3srjt8/

    Perfetto , grazie per ora , non metto risolto perch probabilmente ho altre domande da fare...

  4. #4
    Il codice del jsfiddle (che li funziona perfettamente ) non funziona messo nel mio template esiste un modo da console per sapere quali script stanno lavorando perch c' qualche script che mi ignora il mio codice utilizzando quello del template

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,492
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    Il codice del jsfiddle (che li funziona perfettamente ) non funziona messo nel mio template esiste un modo da console per sapere quali script stanno lavorando perch� c'� qualche script che mi ignora il mio codice utilizzando quello del template
    Difficile aiutarti senza avere info o codice.
    Comunque tutti gli script che hai nella pagina vengono caricati in sequenza dal pi� in alto a scendere, quindi tutti quelli che carichi possono potenzialmente andare in conflitto con quelli precedenti andando a sovrascrivere "qualcosa" del precedente, quindi potresti provare a posizionare lo script che non funziona pi� in alto del precedente, e vedere se funziona (o se cambia errore), e cos� fai la scalata fino a farlo diventare il primo script che carichi, in questo modo sai quale script (eventualmente) riscrive qualcosa. Oppure ti devi armare di pazienza e seguire tutto il ciclo con il debug passo passo.
    Inoltre dire solo "non funziona" non vuol dire nulla! Io addirittura ho visto gente che impazziva dicendo che il sistema avrebbe dovuto funzionare e che in altri posti funzionava perfettamente, ma li non funzionava, salvo poi sapere che invece il problema era che cambiava script o html o cosette del genere senza premere ctrl+f5 (o comunque qualcosa per aggiornare la cache) per aggiornare e ricaricare la pagina e non usare quella nella cache (che ovviamente rimaneva senza le modifiche che faceva), e diceva: "� come se non ci fossero le modifiche che ho fatto!" infatti... la pagina che caricava non aveva le modifiche, non era il codice che non funzionava.

  6. #6
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Difficile aiutarti senza avere info o codice.
    Comunque tutti gli script che hai nella pagina vengono caricati in sequenza dal pi� in alto a scendere, quindi tutti quelli che carichi possono potenzialmente andare in conflitto con quelli precedenti andando a sovrascrivere "qualcosa" del precedente, quindi potresti provare a posizionare lo script che non funziona pi� in alto del precedente, e vedere se funziona (o se cambia errore), e cos� fai la scalata fino a farlo diventare il primo script che carichi, in questo modo sai quale script (eventualmente) riscrive qualcosa. Oppure ti devi armare di pazienza e seguire tutto il ciclo con il debug passo passo.
    Inoltre dire solo "non funziona" non vuol dire nulla! Io addirittura ho visto gente che impazziva dicendo che il sistema avrebbe dovuto funzionare e che in altri posti funzionava perfettamente, ma li non funzionava, salvo poi sapere che invece il problema era che cambiava script o html o cosette del genere senza premere ctrl+f5 (o comunque qualcosa per aggiornare la cache) per aggiornare e ricaricare la pagina e non usare quella nella cache (che ovviamente rimaneva senza le modifiche che faceva), e diceva: "� come se non ci fossero le modifiche che ho fatto!" infatti... la pagina che caricava non aveva le modifiche, non era il codice che non funzionava.

    Hai ragione sul fatto del non funziona ... Praticamente salta le configurazioni ( maxfile ad esempio , maxfilesize) e in pi non mostra il pulsante/link per fare il remove del file una volta caricato .P uoi spiegarmi cosa intendi nel seguire il ciclo con debug ? perch forse quello che serve a me ...

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,492
    Beh si tratta di mettere un punto d'interruzione all'inizio dell'esecuzione della pagina (nel primo script caricato) e continuare a far andare l'esecuzione passo passo (premi la freccia verso il basso con un puntino oppure spesso basta premere f10 per eseguire un istruzione alla volta) seguendo tutte le istruzioni che vengono eseguite in sequenza. Ma non � semplice se hai molta roba... magari � pi� facile prima capire (se � possibile) dove esattamente avviene la sovrascrittura (se di essa si tratta) cercando di fare la scalata come ti ho detto prima.
    O ancora: puoi provare a usare lo strumento cerca. Infatti � chiaro che se qualcosa mi sovrascrive il contenuto di "dropzone" � molto probabile che lo faccia chiamando "dropzone", quindi con una ricerca verso l'alto della parola "dropzone" a partire dalla tua potresti arrivare a trovare subito la riga incriminata.
    E ancora: potresti provare a creare una nuova dropzone al posto di usare una gi� istanziata (sempre immaginando che qualcosa viene sovrascritto nella Dropzone):

    codice:
    Dropzone.autoDiscover = false;
    var drz = new Dropzone("#myDropzone",
    {
      url: "/fake/location",
      autoProcessQueue: false,
      paramName: "file",
      clickable: true,
      maxFilesize: 5, //in mb
      addRemoveLinks: true,
      acceptedFiles: '.png,.jpg',
      dictDefaultMessage: "Upload your file here",
      maxFiles: 1,
    
    
      init: function() {
        this.on("sending", function(file, xhr, formData) {
          console.log("sending file");
        });
        this.on("success", function(file, responseText) {
          console.log('great success');
        });
        this.on("addedfile", function(file){
            if(this.files.length>1)
              this.removeFile(file);
          else
            console.log('file added');
          });
      }
    });
    in questo caso crei una nuova istanza di dropzone, quindi se c'� qualcosa che sovrascrive "dropzone" non lo far� sulla tua istanza (drz in questo caso)
    Qui puoi vedere due dropzone che si comportano in maniera diversa, la prima non accetta pi� di un file, mentre la seconda non ha questa limitazione

  8. #8
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,492
    .

  9. #9
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Beh si tratta di mettere un punto d'interruzione all'inizio dell'esecuzione della pagina (nel primo script caricato) e continuare a far andare l'esecuzione passo passo (premi la freccia verso il basso con un puntino oppure spesso basta premere f10 per eseguire un istruzione alla volta) seguendo tutte le istruzioni che vengono eseguite in sequenza. Ma non � semplice se hai molta roba... magari � pi� facile prima capire (se � possibile) dove esattamente avviene la sovrascrittura (se di essa si tratta) cercando di fare la scalata come ti ho detto prima.
    O ancora: puoi provare a usare lo strumento cerca. Infatti � chiaro che se qualcosa mi sovrascrive il contenuto di "dropzone" � molto probabile che lo faccia chiamando "dropzone", quindi con una ricerca verso l'alto della parola "dropzone" a partire dalla tua potresti arrivare a trovare subito la riga incriminata.
    E ancora: potresti provare a creare una nuova dropzone al posto di usare una gi� istanziata (sempre immaginando che qualcosa viene sovrascritto nella Dropzone):

    codice:
    Dropzone.autoDiscover = false;
    var drz = new Dropzone("#myDropzone",
    {
      url: "/fake/location",
      autoProcessQueue: false,
      paramName: "file",
      clickable: true,
      maxFilesize: 5, //in mb
      addRemoveLinks: true,
      acceptedFiles: '.png,.jpg',
      dictDefaultMessage: "Upload your file here",
      maxFiles: 1,
    
    
      init: function() {
        this.on("sending", function(file, xhr, formData) {
          console.log("sending file");
        });
        this.on("success", function(file, responseText) {
          console.log('great success');
        });
        this.on("addedfile", function(file){
            if(this.files.length>1)
              this.removeFile(file);
          else
            console.log('file added');
          });
      }
    });
    in questo caso crei una nuova istanza di dropzone, quindi se c'� qualcosa che sovrascrive "dropzone" non lo far� sulla tua istanza (drz in questo caso)
    Qui puoi vedere due dropzone che si comportano in maniera diversa, la prima non accetta pi� di un file, mentre la seconda non ha questa limitazione
    Ho visto che se metto il form con class dropzone non funziona la option mentre se metto un div con class dropzone funziona , il problema che non vede l'evento onsending , cio via post vedo arrivare qualcosa ma :

    codice:
    Dropzone.options.myDropzone = {
      url: "/users_Lavorazioni/inserisciRecord",
      autoProcessQueue: false,
      paramName: "file",
      clickable: true,
      maxFilesize: 5, //in mb
      maxFiles: 1, //numero massimo di file
      addRemoveLinks: true,
      acceptedFiles: '.png,.jpg',
      dictDefaultMessage: "<i class='fa fa-upload' aria-hidden='true'></i>Clicca o Trascina i tuoi file qui ",
    
    
      init: function() {
    
    
        var data = new FormData();
        var myDropzone = Dropzone.forElement(".dropzone");
    
    
    
    
       $('#button_invia_scheda').on("click", function() {
         
            myDropzone.processQueue();    
    
    
        });
    
    
        myDropzone.on("sending", function(file, xhr, formData) {
            
            console.log("sending file");
            formData.append("filesize", file.size);  
    
    
    
    
        });
        myDropzone.on("success", function(file, responseText) {
          console.log('great success');
        });
        myDropzone.on("addedfile", function(file){
            console.log('file added');
        });
    
    
         myDropzone.on("maxfilesexceeded", function() {
            if (myDropzone.files[1]!=null){
              myDropzone.removeFile(myDropzone.files[0]);
            }
          });
      }
    };
    NOn vedo in console nessun messaggio anche se premendo il pulsante vedo la progress bar del file riempirsi , mostrare il flag sopra ..

  10. #10
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,492
    Non ho capito se questo problema del form lo hai riscontrato usando una nuova istanza oppure stai continuando ad utilizzare direttamente la variabile dropzone.
    Ma quanti dropzone hai nella pagina? Usando direttamente la variabile dropzone ne puoi avere uno solo. Per metterne di pi devi creare le tue istanze.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.