Uploadify ничего не делает после добавления файлов в очередь - PullRequest
0 голосов
/ 04 марта 2012

У меня есть простая форма с полем Uploadify , позволяющая загружать несколько изображений. Однако, кажется, что он ничего не делает, когда я выбираю свои файлы (и они добавляются в очередь), и я не получаю вывод в консоли.

Вот мой HTML:

<script>
    $(function() {
        $('#file_upload').uploadify({
            uploader: '/cms/tpl/swf/uploadify.swf',
            script: '/cms/inc/upload_image.php?album=39',
            cancelImg: '/cms/tpl/img/cross.gif',
            folder: '/tpl/uploads',
            multi: true,
            auto: true,
            fileExt: '*.jpg;*.gif;*.png',
            fileDesc: 'Image files (.jpg, .gif, .png)',
            queueID: 'file_queue',
            queueSizeLimit: 10,
            simUploadLimit: 10,
            sizeLimit: 1048576,
            removeCompleted: false,
            scriptData: {
                'album': '39',
                'session': 'aeac944c4e911edc5e5de10c98b8e5b7'
            },
            onError: function(a,b,c,d) {
                console.log(a);
                console.log(b);
                console.log(c);
                console.log(d);
            },
            onSelectOnce: function(event,data) {
                $('#status_message').text(data.filesSelected + ' files have been added to the queue.');
            },
            onComplete: function(a,b,c,d,e) {
                if (d !== '1') {
                    alert(d);
                }
                else {
                    alert('Filename: ' + c.name + ' was uploaded');
                }
            },
            onAllComplete: function(event, data) {
                $('#status_message').text(data.filesUploaded + ' files uploaded; ' + data.errors + ' errors.');
            }
        });
    });
</script>

А вот серверный скрипт (PHP), который я использую для обработки загрузки файлов:

<?php
/**
 * @todo Validation!
 */

if (isset($_POST) && isset($_FILES['Filedata'])) {

    $upload_dir = '../../tpl/uploads/';

    $source = $_FILES['Filedata']['tmp_name'];
    $filename = sprintf('%s.%s', uniqid(), $mime[$_FILES['Filedata']['type'][$name.'_upload']]);
    $destination = $this->uploads_dir.$filename;

    require '../../inc/database.php';
    require '../../inc/globals.php';

    if (move_uploaded_file($source, $destination)) {
        try {
            $sql = "INSERT INTO gallery_images (album, image) VALUES (?,?)";
            $smt = $pdo->prepare($sql);
            $res = $smt->execute(array($_REQUEST['album'], $filename));
        }
        catch (PDOException $e) {
            // send error message
        }
    }

    switch ($_FILES['Filedata']['error']) {
        case 0:
            // $msg = 'File successfully uploaded';
        break;
        case 1:
        case 2:
            $msg = 'File size exceeds limit';
        break;
        case 3:
            $msg = 'The file was only partially uploaded';
        break;
        case 4:
            $msg = 'No file was specified';
        break;
        case 6:
            $msg = 'The temporary folder could not be found';
        break;
        case 7:
            $msg = 'Failed to write the file to disk';
        break;
        case 8:
            $msg = 'File upload stopped by extension';
        break;
        default:
            $msg = 'Unknown error';
        break;
    }

    if ($msg) {
        $stringData = "Error: ".$_FILES['userfile']['error']." Error Info: ".$msg;
    }
    else {
        $stringData = "1"; // This is required for onComplete to fire on Mac OSX
    }

    echo $stringData;
}

Очень элементарно, но делает свою работу. Я делаю что-то неправильно? Я что-то пропустил? Выше было собрано после просмотра демонстрационной страницы Uploadify.

1 Ответ

0 голосов
/ 03 апреля 2012

Полагаю, вы могли бы использовать метод jQuery.noConflict (), не так ли?У меня похожая проблема, мои файлы не попадают в очередь файлов ... также не выводятся на консоль ... Я подозреваю, что jQuery.noConflict ... в моем случае ... возможно, мое мышление может помочь вам:)

...