代码之家  ›  专栏  ›  技术社区  ›  Ali Habibzadeh

上传sizelimit问题

  •  0
  • Ali Habibzadeh  · 技术社区  · 14 年前

    我在一个项目中使用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.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 回复  |  直到 13 年前
        1
  •  2
  •   ngoozeff    14 年前

    您可以尝试在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);
    }
    
        2
  •  0
  •   Community Mr_and_Mrs_D    7 年前

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

    Change file upload size in linux server