|
- $(function() {
- var $upload_file = $('.upload_file');
-
- function endsWith(str, suffix) {
- return str.indexOf(suffix, str.length - suffix.length) !== -1;
- }
- var validateImage = function(file) {
- var types = $upload_file.attr('data-file-type').split(",");
- var check = false;
- $.each(types, function(n, e) {
- if (endsWith(file.name, e)) {
- check = true;
- }
- });
- if (!check) {
- alert($upload_file.attr("data-type-support-message") + $upload_file.attr("data-file-type"));
- return false;
- }
- if (file.size && file.size > parseInt($upload_file.attr('data-max-file-size'))) {
- alert($upload_file.attr("data-max-file-size-message"));
- return false;
- }
- return true;
- };
- $('.upload_file').fileupload({
- url: '/upload_avatar.json?source_type=' + $('.upload_file').attr('data-source-type') +
- '&source_id=' + $('.upload_file').attr('data-source-id'),
- add: function(e, data) {
- if (!validateImage(data.files[0])) {
- return false;
- }
- data.submit();
- },
- formData: function(form) {
- var data = form.serializeArray();
- var auth = null;
- for (var key in data) {
- if (data[key].name == "authenticity_token") {
- auth = data[key];
- break;
- }
- }
- return [auth];
- },
- done: function(e, data) {
- var imgSpan = jQuery('#avatar_image');
- var result = data.result.text ? data.result.text() : data.result;
- if(result){
- var o = JSON.parse(result);
- if(o.status == 0){
- imgSpan.attr({
- "src": o.url
- });
- } else {
- alert(o.message);
- }
- }
-
- }
- });
- });
|