2015-11-24 3 views
1

Я использую JQuery BlueImp FileUpload, https://github.com/blueimp/jQuery-File-Upload/Удаление пробелов из файла в JQuery BlueImp пользователя

У нас были некоторые проблемы с файлами, которые включают в себя пробельные, передней и задней. Трейлинг - это проблема (я думаю) в первую очередь с файлами, загруженными из OSX, поскольку расширение по умолчанию по умолчанию опущено, в результате чего загруженные файлы выглядят так: «test .jpg» или «test. Jpg», который затем вызывает проблемы.

Я подумал, что было бы довольно легко исправить, просто нужно сделать некоторую обрезку значений имен в data.files ...

Но это не было, и я ничего не нашел непосредственно связан на веб. Может быть, мой Google-фу супер слаб сегодня ..

Я попытался с помощью методов обратного вызова в https://github.com/blueimp/jQuery-File-Upload/wiki/Options#callback-options так:

$('#fileupload').fileupload({ 
    submit: function (e, data) { 

    // lotsacode... 

    } 

    }).bind('fileuploadadd', function (e, data) { 

     $.each(data.files, function (index, file) { 
       file.name = $.trim(file.name) 
      }); 
     }); 

Это, однако, дает мне:

Uncaught TypeError: Невозможно установить имя свойства #, который имеет только геттер

Я также попытался изменить основные функции _onAdd, _onChange и многое другое, но я получаю ту же проблему.

Оглядываясь на Stackoverflow для решения или идеи о том, где я ошибся, я нашел решения, которые, казалось, работали, если вы работали с классом UploadHandler через PHP, но мы не в том месте, где хотим рассмотреть это. Поэтому мне интересно, есть ли что-то очевидное или что-то не столь очевидное, что я пропал?

Версии: JQuery загрузки файлов Плагин 5.17.1, JQuery загрузки файлов Пользовательский интерфейс Plugin 6.9.5

Мне не нужно, чтобы добавить дополнительные данные к объекту, но изменять данные файлов по умолчанию.

С наилучшими пожеланиями Томас

+1

не доверяйте пользователю. сделайте свою обработку на сервере. –

+0

Вы, сэр, правы. Так мы с этим справимся. Спасибо за очевидное напоминание. – tomasantonj

ответ

1

В соответствии с их документацией, не вы должны приковать ваше санитария в processQueue вместо привязки его к функции обратного вызова?

https://github.com/blueimp/jQuery-File-Upload/wiki/Options#processqueue

Я думаю, что вы могли бы быть привязка к выбранному элементу JQuery, а не к FileUpload или что к тому времени, вы получите обратный вызов файлы были обработаны.

Какие значения выдают console.log(file) в каждом цикле? т.е.

$.each(data.files, function (index, file) { 
       //file.name = $.trim(file.name) 
       console.log(file) 
    }); 
}); 
+0

Мы, вероятно, собираемся идти по маршруту, где мы получаем некоторую подрезку, сделанную на стороне сервера, для нас не было очевидным, что это будет более эффективно до тех пор, пока выше не будет комментарий Роланда Старка, но после прочтения немного о том, как работает processQueue, это также принятый ответ. И значение, которое печатается, - это JS-объект за: http://imgur.com/45jNNWE – tomasantonj

 Смежные вопросы

  • Нет связанных вопросов^_^