Changeset 3507


Ignore:
Timestamp:
Jun 18, 2007, 1:51:34 PM (14 years ago)
Author:
Nicklas Nordborg
Message:

References #470. Upload form can now handle file names with double extensions, for example .tar.gz

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/filemanager/upload/select.jsp

    r3465 r3507  
    215215      var isZip = false;
    216216      var zipIndex = 0;
    217       var dotIndex = filename.lastIndexOf('.');
    218       if (dotIndex != -1)
    219       {
    220         var ext = filename.substr(dotIndex+1);
    221         var zf = allExtensions[ext];
    222         if (zf)
     217     
     218      for (var i = 0; i < allZipFormats.length; i++)
     219      {
     220        var zf = allZipFormats[i];
     221        if (zf.matchesExtension(filename))
    223222        {
    224223          isZip = true;
    225224          zipIndex = zf.index;
     225          i = allZipFormats.length;
    226226        }
    227227      }
     228     
    228229      if (frm.temp_zip_format)
    229230      {
     
    296297   
    297298    var allZipFormats = new Array();
    298     var allExtensions = new Array();
    299299    function ZipFormat(index, id, name, extensions)
    300300    {
     
    304304      this.extensions = extensions;
    305305     
    306       allZipFormats[allZipFormats] = this;
    307       // Map extension to ZipFormat object
    308       if (extensions && extensions.length)
    309       {
    310         for (var i = 0; i < extensions.length; i++)
     306      allZipFormats[allZipFormats.length] = this;
     307     
     308      this.matchesExtension = function(filename)
     309      {
     310        for (var i = 0; i < this.extensions.length; i++)
    311311        {
    312           var ext = extensions[i];
    313           if (!allExtensions[ext]) allExtensions[ext] = this;
    314         }
    315       }
    316      
    317       this.matchesExtension = function(filename)
    318       {
    319         var dotIndex = filename.lastIndexOf('.');
    320         if (dotIndex != -1)
    321         {
    322           var ext = filename.substr(dotIndex+1);
    323           for (var i = 0; i < this.extensions.length; i++)
     312          var ext = '.' + this.extensions[i];
     313          var index = filename.lastIndexOf(ext);
     314          if (index > 0 && (index + ext.length == filename.length))
    324315          {
    325             if (ext == this.extensions[i]) return true;
     316            return true;
    326317          }
    327318        }
Note: See TracChangeset for help on using the changeset viewer.