cari

Rumah  >  Soal Jawab  >  teks badan

Apabila mengimport fail Excel ke dalam Laravel, jumlah data adalah terlalu besar dan pelayan sering mendapat 500 permintaan Apakah yang perlu saya lakukan?

Menggunakan sambungan excel Laravel, cara mengimport lebih daripada 10,000 keping data excel dengan cepat tanpa mengubah konfigurasi pelayan tanpa melaporkan 500 ralat, terima kasih

我想大声告诉你我想大声告诉你2753 hari yang lalu763

membalas semua(3)saya akan balas

  • PHPz

    PHPz2017-05-16 16:50:23

    Situasi ini biasanya berlaku apabila penggunaan memori melebihi konfigurasi maksimum PHP yang dibenarkan atau masa pelaksanaan terlalu lama dan tamat masa. Jika anda terus menggunakan sambungan excel Laravel dan import berdasarkan muat naik web, ia pasti akan tamat masa dan melebihi had saiz memori.

    Penyelesaian adalah dengan menggunakan tugas berjadual atau baris gilir tugas Laravel.

    • Tugas bermasa

      上传文件后,定时任务去检查是否有新上传的文件,如果有就执行导入处理。
      
    • Barisan Tugas

      上传文件后,发布一个异步事件,由任务listener去异步处理excel内容的导入。
      

      Selepas import akhir selesai, tulis hasil import ke pangkalan data atau kaedah storan lain, supaya import data tak segerak tidak akan menyebabkan ralat disebabkan memori atau tamat masa.

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 16:50:23

    Ia perkara biasa. Bertemu ini agak kerap. Jadi saya membangunkan sambungan.
    https://git.oschina.net/xavie...
    https://github.com/xavieryang...

    Masalah PHP mengimport xls sangat serius Kerana xlsx adalah pakej termampat ditambah xml, ia lebih baik daripada xls. Xls ialah fail binari yang mesti dimuatkan sepenuhnya sebelum ia boleh dihuraikan, dan penghuraian agak rumit pada masa ini PHPEXCEL yang popular sangat lambat dalam memproses xls, dan ia sering gagal menghuraikan apabila mengimport xls.

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-16 16:50:23

    Anda tidak perlu membaca item 1W ke dalam ingatan sekali gus Baca satu persatu dan simpan satu persatu

    function getRows($file)
    {
        $handle = fopen($file, 'rb');
        if (!$handle) {
            throw new Exception();
        }
        while (!feof($handle)) {
            yield fgetcsv($handle);
        }
        fclose($handle);
    }
    
    
    foreach (getRows('data.csv') as $k) {
    
    }

    balas
    0
  • Batalbalas