csv是一種不太常見的文字檔案,一般易儲存較大的資料量,其文字結構相對簡單,便於解析。
在專案中我用到的是將乙個csv檔案的大量資料(包含幾百萬條記錄)通過前端方式上傳到後端並且讀取資料到資料庫。
由於csv檔案是需要解析的,首先確定解析方式:前端解析還是後端解析?
現有兩種思路:
1、前端解析
前端我使用的是vue+element ui
①使用element ui中的upload上傳檔案元件,需要進行一些檔案驗證(包括檔案型別、檔案大小。。。),詳細看該元件官網。
②對上傳的csv檔案進行解析,使用papaparse外掛程式,該外掛程式作用是將csv檔案型別資料按行解析成js物件陣列。
③將解析完成的資料轉化成json字串的形式傳到後端。
④後端接收資料並將資料轉化成陣列。
⑤後端檔案將陣列通過原生sql語句插入資料庫(php)。
缺點:對於資料量不大的csv檔案操作時間相對較快,因為將檔案內容變成物件陣列形式,上傳較快,但是對於資料量較大的檔案,請求的資料量較大,容易造成前端瀏覽器崩潰。
2、後端解析
後端我使用的是tp5框架
①前端還是用element ui中的upload上傳檔案元件,直接上傳檔案,當檔案較大時可用壓縮包形式上傳。
②後端開啟上傳的檔案,讀取檔案流,並利用php自帶的fgetcsv檔案按行解析檔案流,並將資料分塊插入資料庫。
相對於前端解析來說,該方法更實用,不用擔心前端資料併發問題。
缺點是檔案較大時資料上傳過慢。
js實現檔案批量上傳
cs檔案 using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui...
Django 實現多檔案批量上傳
首先我並沒有找到所謂得 批量上傳 介面,倒不如自己寫個for迴圈處理下。用from上傳時要驗證表單資料是否合法,然後定位上傳路徑迴圈上傳即可。froms.py from django import forms class filefieldform forms.form widget forms.c...
django 一次性上傳多個檔案, 批量上傳
在用django 寫檔案上傳的時候,從request.files myfiles 獲取到的檔案始終只有乙個,但在html頁面上明明用 html5 的 檔案控制項選擇了多個檔案,用的是chrome 瀏覽器,一次可以選擇多個檔案上傳。在 pydev 開啟debug模式,檢視request 物件,發現上傳...