Uploadify sizeLimit问题

时间:2010-08-10 14:16:41

标签: php jquery file-upload uploadify

我在项目中使用uploadify并使用以下脚本:

$(document).ready(function() {

    $("#uploadify").uploadify({
        'uploader': '_assets/flash/uploadify.swf',
        'script': 'uploadify.php',
        'cancelImg': '_assets/images/nav/cancel.png',
        'folder': 'uploads',
        'queueID': 'fileQueue',
        'auto': true,
        'multi': true,
        'sizeLimit': 20971520,
        'fileExt': '*.eps;*.jpg;*.pdf;*.psd;*.mov;*.ai;*.png;*.doc;*.docx;*.ppt;*.pptx;*.indd;*.bmp;*.dwg;*.pct;*.txt;*.wmv',
        'fileDesc': 'We accept graphics and text files only!',
        'buttonImg': '_assets/images/nav/uploadbutton.png',
        'wmode': 'transparent',
        'width': 143,
        'height': 53,
        onAllComplete: function() {
            $('#forupload').hide();
            $('#confirm').fadeIn();
        }
    });

});

这个发出请求的php文件是uploadify.php:

    error_reporting(E_ALL);


if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    // $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
    // $fileTypes  = str_replace(';','|',$fileTypes);
    // $typesArray = split('\|',$fileTypes);
    // $fileParts  = pathinfo($_FILES['Filedata']['name']);

    // if (in_array($fileParts['extension'],$typesArray)) {
        // Uncomment the following line if you want to make the directory if it doesn't exist
        // mkdir(str_replace('//','/',$targetPath), 0755, true);

        move_uploaded_file($tempFile,$targetFile);
        echo "1";



    //Send confirmation email

    require_once('_mailClasses/class.phpmailer.php');
    include_once("_mailClasses/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

    $mail             = new PHPMailer();

    $body             = 'There is a new online order. Please check your order folder.';
    //$body             = eregi_replace("[\]",'',$body);

    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host       = "mail.splashoflondon.com";      // SMTP server
    $mail->SMTPDebug  = 2;                              // enables SMTP debug information (for testing)
    // 1 = errors and messages
    // 2 = messages only
    $mail->SMTPAuth   = true;                           // enable SMTP authentication
    $mail->Host       = "mail.splashoflondon.com";      // sets the SMTP server
    $mail->Port       = 25;                         // set the SMTP port for the GMAIL server
    $mail->Username   = "orders@splashoflondon.com";    // SMTP account username
    $mail->Password   = "blablabla";                        // SMTP account password

    $mail->SetFrom('orders@splashoflondon.com', 'Splash of London');

    $mail->AddReplyTo("sales@splashoflondon.com","Adolphus");

    $mail->Subject    = "Online Order";

    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

    $mail->MsgHTML($body);

    $address = "sales@splashoflondon.com";
    $mail->AddAddress($address, "Splash Order Managment");
    $mail->Send();

    if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }

}

问题是它忽略了20mb的大小限制,并且不允许用户上传大于1.something mb的文件。

非常感谢任何帮助。

这是我目前的php.ini:

    register_globals = Off

post_max_size = 20M
upload_max_filesize = 20M


[Zend]

zend_optimizer.optimization_level=15

zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.5.10

zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.5.10

zend_optimizer.version=2.5.10a

zend_extension = /usr/local/lib/ioncube_loader_lin_4.4.so



zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so

zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

2 个答案:

答案 0 :(得分:2)

您可以尝试在uploadify调用中订阅onError处理程序。在onAllComplete处理程序之后......这样的东西......

onError: function (a, b, c, d) {
     if (d.status == 404)
        alert('Could not find upload script.');
     else if (d.type === "HTTP")
        alert('error '+d.type+": "+d.status);
     else if (d.type ==="File Size")
        alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
     else
        alert('error '+d.type+": "+d.text);
}

答案 1 :(得分:0)

这可能是一个或多个PHP设置的问题。请参阅我对类似问题的回答:

Change file upload size in linux server