我現用php導出csv 實現過程是先生成文件,然後然後分批量查詢數據然後foreach 循環在一條一條寫入文件,寫入完成後執行下載方法下載文件,我現在的問題如果數據多的話, php程式執行完了,看檔案還是一直在寫入,不能執行下載方法,所以檔案就下載不了,請問有什麼辦法可以解決這個問題?
我現用php導出csv 實現過程是先生成文件,然後然後分批量查詢數據然後foreach 循環在一條一條寫入文件,寫入完成後執行下載方法下載文件,我現在的問題如果數據多的話, php程式執行完了,看檔案還是一直在寫入,不能執行下載方法,所以檔案就下載不了,請問有什麼辦法可以解決這個問題?
這種資料量,單一php請求一般是會逾時的。
建議php文件每次請求只處理10條數據,追加寫入csv文件,單次請求快速返回。
接著寫一個js程序,ajax循環呼叫這個php文件,直到資料都處理完了,觸發網頁下載動作。這樣做還有一個好處,前端網頁可以即時顯示處理進度。
因為csv本質是純文本,你可以配合js和php,js發起多個請求分批過去字符串,最後讓js合併生成文件(鏈接以data:的方式)
文件未完全生成,按鈕是disable狀態