Kaedah pelaksanaan resume titik putus fail besar html5_html5 kemahiran tutorial

WBOY
Lepaskan: 2016-05-16 15:46:08
asal
1976 orang telah melayarinya
Pecahan fail besar

Pelayan web yang biasa digunakan mempunyai had saiz untuk menyerahkan data kepada pelayan. Untuk fail yang melebihi saiz tertentu, pelayan akan mengembalikan mesej penolakan. Sudah tentu, pelayan web menyediakan fail konfigurasi yang boleh mengubah suai had saiz. Terdapat juga beberapa cara untuk memuat naik fail besar ke IIS dengan mengubah suai pelayan web untuk mengehadkan saiz fail. Walau bagaimanapun, ini menimbulkan masalah untuk keselamatan pelayan web. Penyerang boleh menghantar paket data yang besar dengan mudah dan terus menyeret pelayan web anda sehingga mati.
Kaedah pelaksanaan arus perdana semasa untuk memuat naik fail besar adalah dengan membahagikan fail besar kepada ketulan. Sebagai contoh, untuk fail 100M, bahagikannya kepada 50 blok mengikut 2M. Kemudian muat naik setiap fail ke pelayan secara bergilir-gilir, dan kemudian gabungkan fail pada pelayan selepas muat naik selesai.
Untuk melaksanakan muat naik fail yang besar di web, teras terutamanya melaksanakan pembahagian fail. Sebelum API Fail Html5 muncul, adalah perlu untuk melaksanakan pemindahan fail dalam ketulan di web. Pecahan fail hanya boleh dicapai melalui denyar atau Activex.

Di bawah Html5, kami boleh terus melaksanakan pembahagian fail melalui kaedah hirisan fail. Seperti:

Kod XML/HTMLSalin kandungan ke papan keratan
  1. file.slice(0,1000); file.slice(1000,2000);
  2. file.slice(2000,3000);
  3. Kemudian ia dimuat naik ke pelayan secara tidak segerak melalui XMLHttpRequest.
  4. Pustaka kelas fail muat naik HTML5
Jika anda berminat dan mempunyai masa, sudah tentu anda boleh menggunakan API Fail html5 untuk melaksanakannya sendiri. Saya menemui dua perpustakaan berikut yang menyokong HTML5 di Internet.
resumable.js Dilampirkan ialah alamat pada git: https://github.com/23/resumable.js
Pludload http://plupload.com/
resumable ialah muat naik HTML5 tulen perpustakaan kelas. Pludload menyokong html5, flash, silverlight dan html4 secara automatik akan menentukan sama ada penyemak imbas menyokong html5 dan akan menggunakan kaedah muat naik lain.
Saya telah mengujinya dan mendapati bahawa kedua-dua fail yang boleh disambung semula dan Pludload menyokong muat naik html5 dalam ketulan. Selepas menggunakannya, saya merasakan bahawa resumable lebih sesuai, jadi saya akan memilih resumable untuk pengenalan di bawah.

Pengenalan menggunakan muat naik titik putus resumable.js

Pengenalan konfigurasi utama:



Kod JavaScript

Salin kandungan ke papan keratan

var
r =
    baharu
  1. Boleh disambung semula({ sasaran:'/test/upload',
  2. Saiz ketul:1*1024*1024, Muat Naik Serentak:4,
  3. testChunks:
  4. benar,
  5. ThrottleProgressCallbacks:1, kaedah:
  6. "oktet"
  7. });
  8. chunkSize Saiz fail chunked, dalam bait
    simultaneousUploads Bilangan proses memuat naik ketulan fail pada masa yang sama, membenarkan berbilang ketulan fail dimuat naik pada masa yang sama.
    testChunks menyemak sama ada bahagian fail sebelumnya harus menghantar maklumat fail terlebih dahulu melalui kaedah get untuk mengesan sama ada fail telah dimuat naik.

    Muat naik titik putus boleh disambung semula dilaksanakan melalui nod konfigurasi testChunks, apabila ditetapkan kepada benar. resumable akan mula-mula menghantar permintaan dapatkan, jika status http kembali 200. Ia dianggap bahawa blok semasa telah dimuat naik, dan kemudian permintaan dapatkan untuk blok seterusnya dibuat. Jika status http yang dikembalikan bukan 200, paket data blok semasa akan dihantar melalui mod pos untuk muat naik blok fail.

    Menetapkan testChunks kepada true akan menambahkan permintaan dapatkan untuk setiap muat naik, jika kita sudah mengetahui bilangan ketulan dalam fail sebelum muat naik terakhir yang terganggu. Lain kali, muat naik terus dari nombor blok yang terganggu. Ini mengurangkan satu permintaan http get untuk setiap blok.
    Sebagai tindak balas kepada keperluan ini, saya mengubah suai kod sumber yang boleh disambung semula dan menambahkan atribut startchunkindex pada objek fail dalam boleh digunakan semula, yang lalai kepada 0. Digunakan untuk menetapkan blok dari mana fail semasa harus dimuat naik. Dengan cara ini, kami hanya perlu melakukan pertanyaan daripada pelayan sebelum memuat naik fail (menyoal yang menyekat fail semasa dimuat naik) dan mengembalikan indeks blok fail yang terakhir dimuat naik. Kemudian tetapkan nilai indeks kepada atribut startchunkindex fail untuk mula memuat naik dari blok fail terputus terakhir.
    Kaedah panggilan:

    Kod JavaScriptSalin kandungan ke papan keratan
    1. //Kendalikan acara tambah fail
    2. r.on('failDitambah', fungsi (fail) {
    3.                                                                                                                                                                                                                                                                                                                                                                                                                      . Untuk butiran, anda boleh melihat demo dalam lampiran.
    4. Menyiapkan kerja
    Selepas semua blok fail dimuat naik, kerja terakhir ialah menggabungkan dan menyimpan fail. Lampiran ialah contoh pelayan bagi pelaksanaan upload.net yang boleh disambung semula, termasuk fungsi penggabungan fail mudah. Anda juga boleh memuat turun tunjuk cara dalam bahasa lain dari git yang boleh digunakan semula.
    Demi kesederhanaan, contoh demo hanya menyimpan fail pada mesin tempatan. Dalam persekitaran pengeluaran sebenar. Secara amnya, ia harus diletakkan pada pelayan fail yang berasingan (web bahagian hadapan dimuat naik ke pelayan fail melalui ftp atau perkongsian folder), dan kemudian fail yang dimuat naik hendaklah diedarkan, dicerminkan atau diproses (seperti pemampatan video). Sudah tentu, yang terbaik adalah untuk menyimpannya dalam sistem fail yang diedarkan Pada masa ini, nampaknya meletakkannya dalam Sistem Fail Teragih Hadoop (HDFS) adalah penyelesaian yang baik.
    demo


    Vs2012 Html5 Muat turun muat turun demo

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan