PHP Bellek Sınırı

0 Cevap php

Herkes bana bellek kaynakları nasıl kullanıldığı üzerinde hızlı bir astar vermek mümkün olurdu? Ben gibi yukarı PHP.ini yılında PHP bellek limitini olabildiğince yanı sıra satır kod ile biliyorum:

    ini_set("memory_limit","24M");

Ben burada bulunabilir SimpleImage adında oldukça serin bir PHP komut dosyası kullanımı yapıyor yazıyorum bir resim upload script var: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php

Ben JPG'leri ve PNG kabul temel bir form var. Ben bu kadar yüksek olacağını düşünerek, 24m benim PHP bellek limitini kurdum, ama ben bir 3mb görüntü yüklemek çalıştım ben hala güzel bellek ayırma bitkin hata aldı. Bir meatier 240M ve komut kadar değer darbeleme (yerel) iyi çalışır.

My script does this:
1) Accepts the TMP Image being uploaded
2) Runs getimagesize() on the image to check that it's a valid image.
3) Moves the temporary image to the final destination directory.
4) Loads the image using simple image.
5) Resizes the image using simple image.
6) Saves the resized image using simple image script.

Yani tüm yükleme / kontrol / boyutlandırma 24M biraz daha fazla gerektirir sanırım. Ama kabul edilebilir bir bellek limit tahsis ne olacağı konusunda endişeliyim. Ben istiyorum kullanıcılar için rahat etmek ~ 6MB resim yüklemek mümkün. Bu ortalama adanmış sunucular üzerinde son derece stresli olacak mı?

İşte benim yazısının özü budur .. ben şahsen bu kaynaklar üzerinde aşırı savurgan olduğunu sanmıyorum?

    if (!empty($_FILES)) {
    // get image
    ini_set("memory_limit","24M");
    require_once('simpleImage.php');
    require_once('db.php');
    $tempFile             =     $_FILES['file']['tmp_name'];
    $originalFile        =    $_FILES['file']['name'];
    $extension             =     strtolower(end(explode(".", $originalFile)));
    $targetFile         =    "path/to/directory/";

    // validate image
    $validExtensions    =    array('jpg', 'jpeg', 'png');
    if(in_array($extension, $validExtensions)) {
        $validExtension        =    true;    
    } else {
        $validExtension        =    false;    
    }

    if(getimagesize($tempFile) == false) {
        $validImage        =    false;    
    } else {
        $validImage        =    true;    
    }


    if($validExtension == true && $validImage == true) {
        if(move_uploaded_file($tempFile,$targetFile)) {

            $image = new SimpleImage();
            $image->load($targetFile);
            $image->resizeToWidth(500);
            $image->save($targetFile);
        }
    } 
}

0 Cevap