Rumah rangka kerja php Workerman Laksanakan fungsi pemindahan fail dalam dokumen Workerman

Laksanakan fungsi pemindahan fail dalam dokumen Workerman

Nov 08, 2023 pm 03:39 PM
pemindahan fail workerman capai

Laksanakan fungsi pemindahan fail dalam dokumen Workerman

Workerman ialah rangka kerja tak segerak berprestasi tinggi yang dibangunkan berdasarkan PHP, yang boleh merealisasikan pembangunan sambungan panjang di bawah protokol TCP/UDP dengan mudah. Selain itu, Workerman juga menyediakan fungsi merealisasikan pemindahan fail, yang boleh digunakan dalam senario seperti pemindahan fail besar dan sandaran data. Artikel ini akan memperkenalkan cara melaksanakan fungsi pemindahan fail dalam Workerman dan memberikan contoh kod khusus.

1. Pelaksanaan fungsi muat naik fail

Fungsi muat naik fail memerlukan klien menghantar fail untuk dimuat naik ke pelayan, dan pelayan mengesahkan dan menyimpan fail. Dalam Workerman, fungsi muat naik fail boleh dilaksanakan dengan menggunakan komponen pekerja/pemindahan fail. Proses khusus adalah seperti berikut:

  1. Pelanggan membungkus fail ke dalam fail zip dan menghantarnya ke pelayan.
$ftp = new Ftp($server_ip, $server_port);
$ftp->connect();
$response = $ftp->send($zip_file_path);
Salin selepas log masuk

Komponen FTP digunakan di sini untuk menghantar fail zip yang dibungkus oleh klien ke pelayan.

  1. Pelayan mengesahkan format fail dan menyahmampatnya.
public static function handle($connection, $data)
{
    $zip_file = 'upload_file.zip';
    file_put_contents($zip_file, $data);
    $zip = new ZipArchive();
    if ($zip->open($zip_file) === TRUE) {
        $zip->extractTo('./unzip_file/');
        $zip->close();
        unlink($zip_file);
    } else {
        $connection->send("unzip failed");
    }
}
Salin selepas log masuk

Pelayan menerima data fail daripada klien melalui komponen pekerja/pemindahan fail dan menyimpannya sebagai fail zip. Kemudian gunakan pustaka ZipArchive untuk menyahmampat fail dan menyimpan fail dinyahmampat dalam direktori yang ditentukan. Jika penyahmampatan gagal, maklumat kegagalan dihantar kepada klien.

2. Pelaksanaan fungsi muat turun fail

Fungsi muat turun fail memerlukan klien meminta fail daripada pelayan dan menyimpan data fail yang dijawab oleh pelayan sebagai fail tempatan. Dalam Workerman, anda boleh menggunakan fungsi fopen() PHP untuk membuka sambungan fail tempatan dan sambungan fail sebelah pelayan, dan menulis data fail yang dikembalikan oleh pelayan kepada fail tempatan. Proses khusus adalah seperti berikut:

  1. Pelanggan memulakan permintaan muat turun fail ke pelayan.
$client->send(json_encode([
    'type' => 'download',
    'filename' => $filename,
]));
Salin selepas log masuk

Pelanggan menghantar mesej kepada pelayan, membawa nama fail yang hendak dimuat turun.

  1. Pelayan menerima permintaan pelanggan dan menghantar data fail dalam cara penstriman.
public static function handle($connection, $data)
{
    $data = json_decode($data, true);
    $filename = $data['filename'];
    if (!file_exists($filename)) {
        $connection->send(json_encode(['code' => -1, 'msg' => 'file not exist']));
        return;
    }
    $fp = fopen($filename, 'rb');
    $total = filesize($filename);
    $connection->send(json_encode(['code' => 0, 'msg' => 'filesize', 'data' => ['size' => $total]]));
    while (!feof($fp)) {
        $connection->send(fread($fp, 8192), true);
    }
    fclose($fp);
}
Salin selepas log masuk

Selepas menerima permintaan pelanggan, pelayan terlebih dahulu menentukan sama ada fail itu wujud. Jika fail tidak wujud, mesej kegagalan dikembalikan kepada klien. Jika fail wujud, sambungan fail dibuka menggunakan fungsi fopen() dan jumlah saiz fail dikira. Kemudian hantarkan jumlah maklumat saiz fail kepada klien. Selepas itu, kandungan fail dihantar kepada klien beberapa kali melalui gelung sementara.

  1. Pelanggan menerima data fail daripada pelayan dan menyimpannya sebagai fail tempatan.
public function download($client, $response)
{
    $this->downloadSize = 0;
    $this->downloadTotal = $response['data']['size'];
    $data = json_encode(['type' => 'download_continue']);
    while ($this->downloadSize < $this->downloadTotal) {
        $client->send($data);
    }
    fclose($fp);
}
Salin selepas log masuk

Selepas pelanggan menerima jumlah saiz fail daripada pelayan, ia menggunakan gelung untuk menerima data fail yang dihantar oleh pelayan dan menyimpannya sebagai fail tempatan.

Ringkasnya, dengan menggunakan komponen pekerja/pemindahan fail dan fungsi fopen() PHP, kami boleh melaksanakan fungsi muat naik dan muat turun fail dengan mudah dalam Workerman. Perlu diingat bahawa apabila memuat naik fail besar, fungsi seperti bar kemajuan muat naik atau penghantaran tersegmen perlu ditambah untuk meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Laksanakan fungsi pemindahan fail dalam dokumen Workerman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang dilakukan oleh Pembantu Pemindahan Fail WeChat? Gambaran keseluruhan fungsi Pembantu Pemindahan Fail dan cara menggunakannya Apakah yang dilakukan oleh Pembantu Pemindahan Fail WeChat? Gambaran keseluruhan fungsi Pembantu Pemindahan Fail dan cara menggunakannya Mar 13, 2024 am 09:30 AM

Ramai orang pasti telah mendapati bahawa terdapat 'rakan' "Pembantu Pemindahan Fail" dalam WeChat, tetapi sesetengah pengguna tidak tahu untuk tujuan Pembantu Pemindahan Fail, ia digunakan untuk pengguna merakam fail, atau silang. platform Memindahkan fail. Sekarang mari belajar tentang fungsi dan penggunaan Pembantu Pemindahan Fail WeChat! Pengenalan fungsi Pembantu Pemindahan Fail WeChat 1. Pemindahan fail yang mudah: Pembantu Pemindahan Fail WeChat membolehkan pengguna memindahkan pelbagai fail dengan mudah pada platform WeChat, termasuk dokumen, gambar, audio, video, dsb. Pengguna hanya perlu memilih fail yang ingin dipindahkan dalam tetingkap sembang untuk mencapai pemindahan fail yang cepat dan stabil. Fungsi ini sangat praktikal untuk pejabat harian, belajar, kehidupan dan senario lain.

Bagaimana untuk melaksanakan log masuk WeChat dwi pada telefon mudah alih Huawei? Bagaimana untuk melaksanakan log masuk WeChat dwi pada telefon mudah alih Huawei? Mar 24, 2024 am 11:27 AM

Bagaimana untuk melaksanakan log masuk WeChat dwi pada telefon mudah alih Huawei? Dengan kebangkitan media sosial, WeChat telah menjadi salah satu alat komunikasi yang sangat diperlukan dalam kehidupan seharian orang ramai. Walau bagaimanapun, ramai orang mungkin menghadapi masalah: log masuk ke beberapa akaun WeChat pada masa yang sama pada telefon mudah alih yang sama. Bagi pengguna telefon mudah alih Huawei, tidak sukar untuk mencapai log masuk WeChat dwi Artikel ini akan memperkenalkan cara mencapai log masuk WeChat dwi pada telefon mudah alih Huawei. Pertama sekali, sistem EMUI yang disertakan dengan telefon mudah alih Huawei menyediakan fungsi yang sangat mudah - pembukaan dua aplikasi. Melalui fungsi pembukaan dwi aplikasi, pengguna boleh serentak

Panduan Pengaturcaraan PHP: Kaedah untuk Melaksanakan Jujukan Fibonacci Panduan Pengaturcaraan PHP: Kaedah untuk Melaksanakan Jujukan Fibonacci Mar 20, 2024 pm 04:54 PM

Bahasa pengaturcaraan PHP ialah alat yang berkuasa untuk pembangunan web, yang mampu menyokong pelbagai logik dan algoritma pengaturcaraan yang berbeza. Antaranya, melaksanakan jujukan Fibonacci adalah masalah pengaturcaraan biasa dan klasik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan bahasa pengaturcaraan PHP untuk melaksanakan jujukan Fibonacci, dan melampirkan contoh kod tertentu. Jujukan Fibonacci ialah jujukan matematik yang ditakrifkan seperti berikut: unsur pertama dan kedua bagi jujukan ialah 1, dan bermula dari unsur ketiga, nilai setiap unsur adalah sama dengan jumlah dua unsur sebelumnya. Beberapa elemen pertama urutan

Tidak dapat memindahkan fail menggunakan WeChat File Transfer Assistant versi web Tidak dapat memindahkan fail menggunakan WeChat File Transfer Assistant versi web Feb 18, 2024 pm 08:12 PM

Pembantu Pemindahan Fail WeChat (Web) menghadapi masalah pemindahan fail Dalam era digital hari ini, WeChat telah menjadi salah satu alat penting untuk komunikasi harian dan interaksi sosial orang ramai. WeChat menyediakan banyak fungsi, termasuk pembantu pemindahan fail, membolehkan pengguna berkongsi dan menerima pelbagai fail dengan mudah. Walau bagaimanapun, beberapa pengguna baru-baru ini melaporkan bahawa versi web Pembantu Pemindahan Fail WeChat tidak boleh memindahkan fail Isu ini telah menarik perhatian dan perbincangan yang meluas. Pertama sekali, kami perlu menjelaskan bahawa walaupun versi web Pembantu Pemindahan Fail WeChat memastikan pemindahan fail yang selamat dan mudah, ia juga menghadapi

Bagaimana untuk melaksanakan fungsi klon WeChat pada telefon mudah alih Huawei Bagaimana untuk melaksanakan fungsi klon WeChat pada telefon mudah alih Huawei Mar 24, 2024 pm 06:03 PM

Bagaimana untuk melaksanakan fungsi klon WeChat pada telefon mudah alih Huawei Dengan populariti perisian sosial dan penekanan yang semakin meningkat terhadap privasi dan keselamatan orang ramai, fungsi klon WeChat telah beransur-ansur menjadi tumpuan perhatian. Fungsi klon WeChat boleh membantu pengguna log masuk ke berbilang akaun WeChat pada telefon mudah alih yang sama pada masa yang sama, menjadikannya lebih mudah untuk diurus dan digunakan. Tidak sukar untuk melaksanakan fungsi klon WeChat pada telefon mudah alih Huawei Anda hanya perlu mengikuti langkah berikut. Langkah 1: Pastikan versi sistem telefon mudah alih dan versi WeChat memenuhi keperluan Pertama, pastikan versi sistem telefon mudah alih Huawei anda telah dikemas kini kepada versi terkini, serta Apl WeChat.

Mana satu lebih baik, swool atau pekerja? Mana satu lebih baik, swool atau pekerja? Apr 09, 2024 pm 07:00 PM

Swoole dan Workerman kedua-duanya adalah rangka kerja pelayan PHP berprestasi tinggi. Terkenal dengan pemprosesan tak segerak, prestasi cemerlang dan kebolehskalaannya, Swoole sesuai untuk projek yang perlu mengendalikan sejumlah besar permintaan serentak dan daya pemprosesan yang tinggi. Workerman menawarkan fleksibiliti mod tak segerak dan segerak, dengan API intuitif yang lebih sesuai untuk kemudahan penggunaan dan projek yang mengendalikan volum serentak yang lebih rendah.

Bagaimana untuk melaksanakan operasi pembahagian yang tepat di Golang Bagaimana untuk melaksanakan operasi pembahagian yang tepat di Golang Feb 20, 2024 pm 10:51 PM

Melaksanakan operasi pembahagian yang tepat di Golang adalah keperluan biasa, terutamanya dalam senario yang melibatkan pengiraan kewangan atau senario lain yang memerlukan pengiraan ketepatan tinggi. Operator bahagian terbina dalam Golang "/" dikira untuk nombor titik terapung, dan kadangkala terdapat masalah kehilangan ketepatan. Untuk menyelesaikan masalah ini, kami boleh menggunakan perpustakaan pihak ketiga atau fungsi tersuai untuk melaksanakan operasi pembahagian yang tepat. Pendekatan biasa ialah menggunakan jenis Tikus daripada pakej matematik/besar, yang menyediakan perwakilan pecahan dan boleh digunakan untuk melaksanakan operasi pembahagian yang tepat.

Kuasai cara Golang mendayakan kemungkinan pembangunan permainan Kuasai cara Golang mendayakan kemungkinan pembangunan permainan Mar 16, 2024 pm 12:57 PM

Dalam bidang pembangunan perisian hari ini, Golang (bahasa Go), sebagai bahasa pengaturcaraan yang cekap, ringkas dan sangat bersesuaian, semakin digemari oleh pembangun. Perpustakaan standardnya yang kaya dan ciri-ciri konkurensi yang cekap menjadikannya pilihan berprofil tinggi dalam bidang pembangunan permainan. Artikel ini akan meneroka cara menggunakan Golang untuk pembangunan permainan dan menunjukkan kemungkinan besarnya melalui contoh kod tertentu. 1. Kelebihan Golang dalam pembangunan permainan Sebagai bahasa yang ditaip secara statik, Golang digunakan dalam membina sistem permainan berskala besar.

See all articles