Ciao ragazzi,
ho un problema con uno script, ho utilizzato un plugin esterno si chiama jquery filer che supporta una classe scritta in php per la gestione dei file che ricevono l'upload.

ora senza farla tanto lunga sulla presentazione del plugin qui c'è la guida del jQuery.filer

http://filer.grandesign.md/#download


e ora presento il mio problema.

Ho utilizzato il modello Drag & Drop che c'era all'interno della guida ed ho implementato la classe class.uploader.php il problmea è che spesso al mio cliente capita che dopo che seleziona le immagini, ad esempio sono 10 immagini? ecco lo script gliene carica 1 o 2 e non 10.

questa è una cosa che non capisco.

Vorrei sapere se qualcuno di voi può aiutarmi a capire come mai succeda..

intanto vi faccio vedere il codice

allora è suddiviso in PHP e jQuery

questa è la parte di jQuery

codice:
$('#immagini_annuncio').filer({
          changeInput: '<div class="jFiler-input-dragDrop"><div class="jFiler-input-inner"><div class="jFiler-input-icon"><i class="icon-jfi-cloud-up-o"></i></div><div class="jFiler-input-text"><h3>Trascina le immagini qui</h3> <span style="display:inline-block; margin: 15px 0">oppure</span></div><a class="jFiler-input-choose-btn blue">Scegli immagini</a></div></div>',
          showThumbs: true,
          theme: "dragdropbox",
          templates: {
              box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>',
              item: '<li class="jFiler-item">\
                          <div class="jFiler-item-container">\
                              <div class="jFiler-item-inner">\
                                  <div class="jFiler-item-thumb">\
                                      <div class="jFiler-item-status"></div>\
                                      <div class="jFiler-item-info">\
                                          <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
                                          <span class="jFiler-item-others">{{fi-size2}}</span>\
                                      </div>\
                                      {{fi-image}}\
                                  </div>\
                                  <div class="jFiler-item-assets jFiler-row">\
                                      <ul class="list-inline pull-left">\
                                          <li>{{fi-progressBar}}</li>\
                                      </ul>\
                                      <ul class="list-inline pull-right">\
                                          <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
                                      </ul>\
                                  </div>\
                              </div>\
                          </div>\
                      </li>',
              itemAppend: '<li class="jFiler-item">\
                              <div class="jFiler-item-container">\
                                  <div class="jFiler-item-inner">\
                                      <div class="jFiler-item-thumb">\
                                          <div class="jFiler-item-status"></div>\
                                          <div class="jFiler-item-info">\
                                              <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
                                              <span class="jFiler-item-others">{{fi-size2}}</span>\
                                          </div>\
                                          {{fi-image}}\
                                      </div>\
                                      <div class="jFiler-item-assets jFiler-row">\
                                          <ul class="list-inline pull-left">\
                                              <li><span class="jFiler-item-others">{{fi-icon}}</span></li>\
                                          </ul>\
                                          <ul class="list-inline pull-right">\
                                              <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
                                          </ul>\
                                      </div>\
                                  </div>\
                              </div>\
                          </li>',
              progressBar: '<div class="bar"></div>',
              itemAppendToEnd: false,
              removeConfirmation: true,
              _selectors: {
                  list: '.jFiler-items-list',
                  item: '.jFiler-item',
                  progressBar: '.bar',
                  remove: '.jFiler-item-trash-action'
              }
          },
          dragDrop: {
              dragEnter: null,
              dragLeave: null,
              drop: null,
          },
          uploadFile: {
              url: "admin",
              data: null,
              type: 'POST',
              enctype: 'multipart/form-data',
              beforeSend: function(){},
              success: function(data, el){
                  var parent = el.find(".jFiler-jProgressBar").parent();
                  el.find(".jFiler-jProgressBar").fadeOut("slow", function(){
                      $("<div class=\"jFiler-item-others text-success\"><i class=\"icon-jfi-check-circle\"></i> Fatto</div>").hide().appendTo(parent).fadeIn("slow");    
                  });
              },
              error: function(el){
                  var parent = el.find(".jFiler-jProgressBar").parent();
                  el.find(".jFiler-jProgressBar").fadeOut("slow", function(){
                      $("<div class=\"jFiler-item-others text-error\"><i class=\"icon-jfi-minus-circle\"></i> Errore</div>").hide().appendTo(parent).fadeIn("slow");    
                  });
              },
              statusCode: null,
              onProgress: null,
              onComplete: null
          }
      });
di questa parte non capisco questo a cosa mi interessa:

uploadFile: {
url: "admin",
data: null,
type: 'POST',

ovvero nella guida c'è: url: "./php/uploader.php",

io, presumo, che quella parte significhi che devo richiamare la pagina in cui eseguo l'upload?


andiamo oltre...

la parte di php invece si trova nella stessa pagina in cui c'è il codice che vi ho postato sopra

codice:
include('class.uploader.php');
    $uploader = new Uploader();
    $data = $uploader->upload($_FILES["album_ads"], array(
      'limit' => 20, //Maximum Limit of files. {null, Number}
      'maxSize' => null, //Maximum Size of files {null, Number(in MB's)}
      'extensions' => array('jpg', 'png', 'jpeg', 'JPG', 'PNG', 'JPEG'), //Whitelist for file extension. {null, Array(ex: array('jpg', 'png'))}
      'required' => true, //Minimum one file is required for upload {Boolean}
      'uploadDir' => "img/ads/".$id."/", //Upload directory {String}
      'title' => array('name'), //New file name {null, String, Array} *please read documentation in README.md
      'removeFiles' => true, //Enable file exclusion {Boolean(extra for jQuery.filer), String($_POST field name containing json data with file names)}
      'perms' => 0777, //Uploaded file permisions {null, Number}
      'onCheck' => null, //A callback function name to be called by checking a file for errors (must return an array) | ($file) | Callback
      'onError' => null, //A callback function name to be called if an error occured (must return an array) | ($errors, $file) | Callback
      'onSuccess' => null, //A callback function name to be called if all files were successfully uploaded | ($files, $metas) | Callback
      'onUpload' => null, //A callback function name to be called if all files were successfully uploaded (must return an array) | ($file) | Callback
      'onComplete' => null, //A callback function name to be called when upload is complete | ($file) | Callback
      'onRemove' => 'onFilesRemoveCallback' //A callback function name to be called by removing files (must return an array) | ($removed_files) | Callback
    ));
    function onFilesRemoveCallback($removed_files){
      foreach($removed_files as $key=>$value){
          $file = "img/ads/".$id."/" . $value;
          if(file_exists($file)){
              unlink($file);
          }
      }
      return $removed_files;
    }
    $dir = "img/ads/".$id;
    $files = glob($dir."/*.*");
    for($i=0;$i<count($files);$i++) {
      $image = $files[$i];
      $supported_file = array('jpg','jpeg','png','JPG','PNG','JPEG');
      $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
      if(in_array($ext, $supported_file)) {
        $new_image = str_replace(" ","-", $image);
        rename($image, $new_image);
        
        $resize = new ImageResize($new_image);
        $resize->resize(600,400);
        $resize->save($new_image);
        
      }
      else {
        continue;
      }
    }

io dopo che vengono caricate le immagini eseguo un rename e un resize, e questo è tutto, ora l'errore che vi ho menzionato non accade spesso (anzi a me non accade mai) al mio cliente invece si! lui usa safari e dunque ho provato a farlo anche con safari ma a me non da nessun problema!

sapreste aiutarmi??

thanks!