ソースを参照

New `encodeUrl` boolean option that encodes all URL passed by default fixes #1298

Kartik Visweswaran 6 年 前
コミット
86010b4468
3 ファイル変更11 行追加4 行削除
  1. 1 0
      CHANGE.md
  2. 10 4
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 1 - 0
CHANGE.md

@@ -7,6 +7,7 @@ Change Log: `bootstrap-fileinput`
 
 - (enh #1311): Correct preview zoom modal keydown next and prev keyboard behavior.
 - (enh #1308): Enhance audio file preview thumbnail styling.
+- (enh #1298): New `encodeUrl` boolean option that encodes all URL passed by default.
 
 ## version 4.5.1
 

+ 10 - 4
js/fileinput.js

@@ -762,7 +762,7 @@
             tZoomCache = '<div class="kv-zoom-cache" style="display:none">{zoomContent}</div>';
             vDefaultDim = {width: "100%", height: "100%", 'min-height': "480px"};
             if (self._isPdfRendered()) {
-                tPdf = self.pdfRendererTemplate.replace('{renderer}', self.pdfRendererUrl);
+                tPdf = self.pdfRendererTemplate.replace('{renderer}', self._encodeURI(self.pdfRendererUrl));
             }
             self.defaults = {
                 layoutTemplates: {
@@ -1146,6 +1146,10 @@
             }
             $el.off(ev).on(ev, callback);
         },
+        _encodeURI: function (vUrl) {
+            var self = this;
+            return self.encodeUrl ? encodeURI(vUrl) : vUrl;
+        },
         _log: function (msg) {
             var self = this, id = self.$element.attr('id');
             if (id) {
@@ -2149,7 +2153,7 @@
             }
         },
         _ajaxSubmit: function (fnBefore, fnSuccess, fnComplete, fnError, previewId, index) {
-            var self = this, settings;
+            var self = this, settings, vUrl;
             if (!self._raise('filepreajax', [previewId, index])) {
                 return;
             }
@@ -2159,12 +2163,13 @@
             self._mergeAjaxCallback('success', fnSuccess);
             self._mergeAjaxCallback('complete', fnComplete);
             self._mergeAjaxCallback('error', fnError);
+            vUrl = index && self.uploadUrlThumb ? self.uploadUrlThumb : self.uploadUrl;
             settings = $.extend(true, {}, {
                 xhr: function () {
                     var xhrobj = $.ajaxSettings.xhr();
                     return self._initXhr(xhrobj, previewId, self.getFileStack().length);
                 },
-                url: index && self.uploadUrlThumb ? self.uploadUrlThumb : self.uploadUrl,
+                url: self._encodeURI(vUrl),
                 type: 'POST',
                 dataType: 'json',
                 data: self.formdata,
@@ -2785,7 +2790,7 @@
                 self._mergeAjaxCallback('success', fnSuccess, 'delete');
                 self._mergeAjaxCallback('error', fnError, 'delete');
                 settings = $.extend(true, {}, {
-                    url: vUrl,
+                    url: self._encodeURI(vUrl),
                     type: 'POST',
                     dataType: 'json',
                     data: $.extend(true, {}, {key: vKey}, extraData)
@@ -4282,6 +4287,7 @@
         required: false,
         rtl: false,
         hideThumbnailContent: false,
+        encodeUrl: true,
         generateFileId: null,
         previewClass: '',
         captionClass: '',

ファイルの差分が大きいため隠しています
+ 0 - 0
js/fileinput.min.js


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません