cari

Rumah  >  Soal Jawab  >  teks badan

getimagefile() dalam templat smarty berfungsi secara rawak

Dalam templat galeri foto (CMSMS) saya menggunakan kod berikut:

<ul>
{foreach from=$images item=image}
{$imagesize=getimagesize($image->file)}
<li> name : {$image->file} <em>width :</em> {$imagesize[0]}- <em>height:</em> {$imagesize[1]} </li>
{/foreach}
</ul>

Setiap kali galeri dimuatkan, dimensi (lebar dan tinggi) hanya beberapa imej diambil, kadangkala kesemuanya. Ia benar-benar rawak dan tidak semestinya imej yang sama. Jelas sekali saya mencuba imej yang berbeza dari sumber yang berbeza.

Saya mendapat ralat gagal Strim Terbuka: Sambungan ditolak. Ctrl+F5 memberi secara rawak

Ini adalah pengehosan kongsi (OVH).

Saya mencipta fail php dan direktori imej (banyak daripadanya) dalam akar tapak web.

<?php

function walkDir($path = null) {
    if(empty($path)) {
        $d = new DirectoryIterator('./testqdima');
    } else {
        $d = new DirectoryIterator($path);
    }

    foreach($d as $f) {
        if(
            $f->isFile() && 
            preg_match("/(\.gif|\.png|\.jpe?g)$/", $f->getFilename())
        ) {
            list($w, $h) = getimagesize($f->getPathname());
            echo "<p>".$f->getFilename() . " Dimensions: " . $w . ' ' . $h . "</p>";
        } elseif($f->isDir() && $f->getFilename() != '.' && $f->getFilename() != '..') {
            walkDir($f->getPathname());
        }
    }
}

walkDir();

?>

Ia berfungsi hebat dan semua imej diproses.

So kalau ada yang pernah hadapi masalah ni sebelum ni...

P粉715274052P粉715274052450 hari yang lalu572

membalas semua(1)saya akan balas

  • P粉515066518

    P粉5150665182023-09-11 11:29:41

    Banyak penyedia pengehosan mengenakan had sambungan dan/atau had kadar sambungan (atau serupa) untuk memerangi serangan DDOS (atau atas sebab peruntukan sumber).

    Untuk mengehadkan kadar sambungan, ia adalah:

    Connection Rate Limit: a number that specifies the number of 
    new connections accepted per second for the virtual server.

    Mereka juga mungkin menggunakan kaedah lain untuk mengehadkan bilangan panggilan PHP/panggilan kaedah PHP khusus sesaat.

    Untuk kaedah templat, setiap panggilan getimagesize adalah permintaan berasingan , jadi boleh mencetuskan pendikitan dan mengakibatkan ralat penolakan sambungan

    Untuk cara PHP, ia dianggap sebagai satu permintaan, jadi ia akan lulus dengan jayanya.

    Saya rasa anda hanya boleh menyelesaikan isu ini dengan bercakap dengan syarikat pengehosan (tetapi mereka mungkin tidak menghiburkan anda kerana mereka masih perlu menyelesaikan kemungkinan DDOS dll), jika tidak, berpegang pada cara PHP anda menghuraikan rekod imej (atau beralih ke pengehosan A yang lain syarikat / menggunakan pelayan khusus)

    balas
    0
  • Batalbalas