2010-08-10 4 views
0

J'utilise Uploadify dans un projet avec le script suivant:Uploadify sizeLimit question

$(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(); 
     } 
    }); 

}); 

Le fichier php cela fait une demande est 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 = "[email protected]"; // SMTP account username 
    $mail->Password = "blablabla";      // SMTP account password 

    $mail->SetFrom('[email protected]', 'Splash of London'); 

    $mail->AddReplyTo("[email protected]","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 = "[email protected]"; 
    $mail->AddAddress($address, "Splash Order Managment"); 
    $mail->Send(); 

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

} 

Le problème est qu'il ne tient pas compte la limite de taille 20mb et ne permet pas à l'utilisateur de télécharger des fichiers plus gros que 1.quelque chose mb.

Toute aide serait grandement appréciée.

Ceci est mon php.ini actuel:

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 
+0

@XGreen: quel serveur web utilisez-vous? Apache et Nginx ont des paramètres de configuration pour la taille maximale du POST par exemple. – ngoozeff

+0

J'utilise Apache de HOSTPAPA, un fournisseur canadien. Sur le CPANEL du domaine dans la section de configuration php, il est indiqué: File Uploads \t upload_max_filesize \t Taille maximale autorisée pour les fichiers téléchargés. \t 64M – XGreen

+0

Comment modifier le paramètre de configuration pour la taille max. Dois-je ajouter un fichier .htaccess à la racine du projet? Quelle est la syntaxe correcte que j'ai besoin d'écrire? – XGreen

Répondre

2

Vous pouvez essayer vous abonner au gestionnaire de onError dans votre appel Uploadify. Quelque chose comme ça, après le gestionnaire 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); 
} 
+0

Merci, bien que 'd.sizeLimit' ne soit pas défini – jfoucher

0

Il est peut-être un problème avec un ou plusieurs paramètres PHP. Voir ma réponse à une question similaire:

Change file upload size in linux server

+0

ajouter également php_value upload_max_filesize 70M 80M php_value post_max_size php_value memory_limit 90M php_value max_execution_time 240 php_value max_input_time 240 à mon .htaccess au lieu des directives précédentes. Il ne plante pas mais n'a aucun effet. – XGreen

+0

en utilisant upload_max_filesize dans htacess bloque mon serveur – XGreen

+0

est-il possible que la commande php_value soit bannie par mon fournisseur? – XGreen