Jquery Uploadify изображений несколько экземпляров и вызвать каждый экземпляр завершения предыдущего - PullRequest
2 голосов
/ 21 июля 2010

Я использую Jquery Uploadify для загрузки изображений с помощью PHP, здесь у меня есть несколько экземпляров загрузки, и каждый экземпляр загружает изображения в разные папки.

Я хочу, чтобы второй экземпляр загрузки начал загружать только изображенияпосле первой загрузки загрузить выбранное изображение.

$ ('# перечисление_изображения'). UploadifySettings ('папка', 'перечисление_image_TempImage');. $ ( '# Listing_image') uploadifyUpload ();$ ( '# Listing_image1') uploadifySettings ( 'папка', 'listing_image1_TempImage').$ ('# перечисление_image1'). uploadifyUpload ();

, т. е. «перечисление_image1» получит вызов после завершения обработки «перечисление_изображения».Как мне добиться этого поведения?

Ответы [ 3 ]

2 голосов
/ 21 июля 2010

Вы можете создать функцию «обратного вызова», которая срабатывает при завершении первой загрузки.

$('#listing_image').uploadify({
 'folder'    : '/listing_image_TempImage',
 onComplete: function(){ 
  $('#listing_image1').uploadify({
   'folder'    : '/listing_image_TempImage'
  });
 }
});

С 6 (одна за другой) загрузок:

$('#listing_image').uploadify({
    'folder'    : '/listing_image_TempImage',
    onComplete: function(){ 
        $('#listing_image1').uploadify({
            'folder'    : '/listing_image_TempImage1',
            onComplete: function(){ 
                $('#listing_image2').uploadify({
                    'folder'    : '/listing_image_TempImage2',
                    onComplete: function(){ 
                        $('#listing_image3').uploadify({
                            'folder'    : '/listing_image_TempImage3',
                            onComplete: function(){ 
                                $('#listing_image4').uploadify({
                                    'folder'    : '/listing_image_TempImage4',
                                    onComplete: function(){ 
                                        $('#listing_image5').uploadify({
                                            'folder'    : '/listing_image_TempImage5'   
                                        });
                                    }   
                                });
                            }           
                        });
                    }
                });
            }
        });
    }
});

Я предполагаю, что это эта загрузка , о которой вы говорите.

Полный список доступных обратных вызовов смотрите в документах .

1 голос
/ 21 июля 2010

Я не могу добавить комментарий к вашему ответу.Поэтому я пишу это здесь.

Попробуйте выполнить одну загрузку с помощью этого (убедитесь, что ссылки указывают на правильные местоположения):

$('#listing_image').uploadify({
    'uploader'  : 'uploadify.swf',
    'script'    : 'uploadify.php',
    'cancelImg' : 'cancel.png',
    'folder'    : '/listing_image_TempImage',
    onComplete: function(){ 
        // Do oncomplete stuff. 
    }
});

Когда вы сможете заставить это работать, тогда вы сможетесделать эту работу.

var uploads = [2,4,5]; // Only number 2,4 and 5
var numberofuploads = uploads.length; // How many is that?
var folderlist = [0, '/folder1', '/folder2', '/folder3', '/folder4', '/folder5', '/folder6']; // List of folders to upload to
var listingimageslist = [0, '#listing_image1', '#listing_image2', '#listing_image3', '#listing_image4', '#listing_image5', '#listing_image6']; // List of form selectors. 

var folder = folderlist[uploads[0]]; // What folder should this form upload to
var listingimages = listingimageslist[uploads[0]]; // With what selector can the form be found?
if (numberofuploads > 1)
{
    var next = 1; // What upload to initiate after this one?
}
initUpload(listingimages,folder); // make the upload thing work. 


function initUpload(e,folder)
{
    $(e).uploadify({
        'folder'    : folder,
        'uploader'  : 'uploadify.swf',
        'script'    : 'uploadify.php',
        'cancelImg' : 'cancel.png',
        onComplete: function(){ 
            var folder = folderlist[uploads[next]];
            var listingimages = listingimageslist[uploads[next]];
            next++
            if (numberofuploads != next)
            {
                initUpload(listingimages,folder);
            }
        }
    });
};

Я не тестировал код, но вы должны быть в состоянии заставить его работать, если вы знаете немного javascript.

Запомните, чтобы весь ваш код jQuery был в $ (документе). Вот так:

$(document).ready(function() {
 // Insert code here
});
0 голосов
/ 21 июля 2010

Если вы используете сеансы, выполнение сценария будет отложено на стороне сервера, поэтому каждая загрузка будет обрабатываться одна за другой в любом случае.

...