Bagaimana cara mengemas dan mengompres beberapa file yang diunggah dengan memanggil baris perintah WinZip di sisi server?
Untuk mengatasi masalah ini, pertama -tama kita harus memahami host skrip Windows, disebut sebagai WSH! Berikut adalah kutipan dari penjelasan Microsoft:
********************************************** ******* ***************************
* WSH adalah jenis seri teknologi skrip Microsoft.
* Dalam lingkungan ini, beberapa objek telah ditentukan sebelumnya, dan objek lain di COM juga dapat digunakan. *
* Dia menggunakan mesin skrip untuk menafsirkan dan menjalankan skrip.
* Pihak ketiga juga dapat mengembangkan mesin skrip mereka sendiri. *
********************************************** ******* ***************************
Agar spesifik, Anda pertama kali menyusun beberapa file skrip (Microsoft hadir dengan beberapa contoh, dengan sufiks.vbs atau .js).
Kemudian gunakan program untuk menjelaskan dan melaksanakannya, dan program ini disebut Windows Scripting Host.
Namanya wscript.exe (atau cscript.exe pada baris perintah), Anda dapat memeriksa mesin Anda
Jika Anda memiliki dua file ini di dalamnya, Anda akan tahu apakah ada WSH. (Win2000 berada di bawah Winnt/System32/)
Ini sangat mirip dengan file batch, kecuali bahwa file tersebut bukan baris perintah, tetapi skrip yang ditulis dalam bahasa skrip.
Mari kita perkenalkan secara singkat beberapa objek bawaan yang datang dengan WSH, termasuk:
1. Objek yang disediakan oleh wscript.exe
WScript terpapar ke mesin skrip sebagai wscript.
Wsharguments tidak publik; memasuki
2. Objek disediakan oleh wshom.ocx.
Objek otomatis wshshell. Progid adalah wscript.wshell.
(Catatan: Inilah yang ingin kami gunakan, Anda dapat menjalankan perintah DOS)
Objek otomatis WSHNETWork. Progid adalah wscript.wshnetwork.
Wshshortcut tidak publik;
Wshurlshortcut tidak umum;
Wshcollection tidak diterbitkan;
Lingkungan Wshen tidak publik;
WshspecialFolder tidak publik;
Mereka terutama dapat menyelesaikan akuisisi variabel lingkungan, login jaringan, pemetaan drive, dan pembuatan intersep cepat.
Pemuatan program, folder khusus (seperti folder sistem) Akuisisi informasi dan fungsi lainnya.
Jika sistem Anda mendukung ADO dan komponen COM lainnya, Anda juga dapat menggunakannya.
Contoh berikut menunjukkan membuka wordpad untuk melihat file teks, membuat file teks dan menulis a
Anda dapat menyalinnya ke papan tulis, lalu menyimpannya dengan .VB sebagai akhiran, dan kemudian klik dua kali.
'test.vbs
'************************
'Berikut ini adalah memulai program dengan objek shell
'************************
Set wshshell = wscript.createObject (wscript.shell)
Wshshell.run (notepad & wscript.scriptfullname)
'*********************************************** *****
'Gunakan com objek scripting.filesystemObject untuk mengoperasikan file teks
'*********************************************** *****
Set FS = WScript.CreateObject (Scripting.FilesystemObject)
Set a = fs.createTextFile (c: /testfile.txt, true)
A.WriteLine (ini adalah tes.)
A.close
Ini juga dapat diterapkan dalam bahasa pemrograman web seperti ASP
<bahasa skrip = vbscript.encode runat = server>
'Di atas memulai program dengan objek shell
Set wshshell = server.createObject (wscript.shell)
Issuccess = wshshell.run (d: /winnt/system32/cmd.exe, 1, true)
Jika issuccess = 0 lalu
Perintah Response.Write berhasil dieksekusi!
kalau tidak
Perintah respons.write gagal dieksekusi! Izin yang tidak mencukupi atau program tidak dapat berjalan di negara bagian DOS
akhiri jika
</script>
Catatan:
1. Server runat =
2.set wshshell = wscript.createObject (wscript.shell)
Untuk mengubah ke set wshshell = server.createObject (wscript.shell),
3. Parameter 1 mewakili SW_SHOWNORMAL, mengaktifkan dan menampilkan jendela. Jika jendela diminimalkan atau dimaksimalkan, itu akan dikembalikan ke ukuran dan posisinya yang asli.
4.True mewakili kesalahan yang mengembalikan eksekusi, salah atau ditentukan bahwa skrip terus dieksekusi tanpa menunggu proses berakhir.
5. Memanggil objek bawaan WSH, itu bisa disebut seperti fungsi panggilan dan prosedur.
Misalnya, hubungi wshshell.run (d: /winnt/system32/cmd.exe, 1, true)
Jika Anda tertarik pada WSH dan ingin tahu lebih banyak, silakan periksa
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconwshbasics.asp
http://www.dev-plub.com/club/bbs/showessence.asp?id=11136
Sekarang mari kita kembali ke intinya dan lihat cara memampatkan dan mendekompres file!
Semua orang tahu bahwa Winzip mudah untuk mendekompresi dan mengompres file, tetapi bagaimana cara memanggilnya melalui program dan baris perintah?
Tentu saja penulis Winzip telah berkembang
Winzip Command Line Dukungan Add-On Versi 1.0
Semua orang dapat pergi ke http://www.winzip.com/wzcline.htm untuk mengunduh wzcline.exe!
Premisnya adalah bahwa mesin harus menginstal Winzip8.0 atau lebih tinggi dukungan.
http://www.winzip.com/download.htm Unduh!
Setelah mengunduh, cukup instal!
File Bantuan Bantuan dan Program Perintah Winzip Wzzip.exe, wzunzip.exe akan dihasilkan di direktori Winzip.
Anda dapat mulai menjalankan panggilan:
Misalnya: C:/Program Files/Winzip/Wzzip myfile.zip
Anda juga dapat menyalin dua file di sini ke direktori apa pun dan menjalankannya langsung di bawah jendela DOS.
Misalnya: wzzip.exe myfile.zip
Anda dapat menambahkan Path = C:/Windows; C:/Program Files/WinZip;
Anda dapat menyebutnya di mana saja tanpa menambahkan umpan!
Sekarang mari kita memahami secara singkat penggunaan dasar dari dua perintah dalam bantuan
Gunakan wzzip.exe untuk mengompres file:
Format Umum: WZZIP [Opsi] ZipFile [@ListFile] [File ...]
[Opsi] termasuk:
-Sebuah operasi default, file terkompresi
-a+ kompres file dan hapus file yang akan dikompresi
-B [drive | path] adalah membuat file terkompresi sementara di drive lain
-d hapus file target yang ditentukan dalam file zip
-e <x | n | f | s | 0> adalah untuk mengatur rasio kompresi, x adalah maksimum dan 0 adalah minimum
-f Ganti file yang ada di file zip
-H |-Lihat Bantuan
-v Buat daftar file terkompresi
-@Daftar Buat file yang berisi semua file yang akan didekompresi, dan kemudian mengompresnya dengan nama file yang disertakan
............. (untuk detail lainnya, silakan merujuk ke file bantuan)
[@ListFile] adalah catatan informasi daftar file terkompresi
[File ...] adalah beberapa file yang akan dikompresi, dipisahkan oleh spasi, atau wildcard
contoh:
Kompres semua file di direktori saat ini
wzzip test.zip *. *
Kompres semua file tipe txt
wzzip test.zip *.txt
Kompres dua file
wzzip test.zip abc.txt def.txt
Kompres semua file tipe txt kecuali ABC.txt
wzzip -xabc.txt test.zip *.txt
Kompres semua file dan subdirektori tipe txt di bawah d:/docs
wzzip -rp test.zip d:/docs/*. txt
Perbarui file di zipit.1st untuk test.zip
wzzip -u test.zip @zipit.lst
Daftar daftar file terkompresi
wzzip -v test.zip
Gunakan wzunzip.exe untuk membuka ritsleting file:
Dengan format: wzunzip [opsi] zipfile [@ListFile] [path] [file ...]
[Opsi] termasuk:
-c [m] dekompresi adalah untuk menampilkan daftar file di layar DOS
-D Rekonstruksi struktur direktori dalam file zip
-f hanya mendekompres file dengan nama yang sama dengan folder saat ini dalam file zip.
-JHRS Abaikan properti yang tersembunyi, hanya baca, dan sistem file dalam file zip
-JHRS hanya mendekompres file dengan properti tersembunyi, hanya baca, dan sistem
-n hanya mendekompresi file baru, ganti jika file yang akan didekompresi lebih baru dari yang sudah ada.
-o tidak perlu menggunakan ya untuk menentukan apakah akan mengganti file
-v Buat daftar file terkompresi
-@Daftar Buat file yang berisi semua file yang akan didekompresi, dan kemudian mendekompresi dengan nama file yang disertakan
............. (untuk detail lainnya, silakan merujuk ke file bantuan)
Misalnya:
Buat semua file ke direktori saat ini
wzunzip test.zip
Buat ABC.txt dari test.zip ke direktori saat ini
wzunzip test.zip ABC.txt
Buat struktur dan file direktori di test.zip ke direktori saat ini
wzunzip -d test.zip
Buat struktur dan file direktori di test.zip ke c:/docs
wzunzip -d test.zip c:/dokumen membuat file yang berisi nama file di file.ist dari test.zip
wzunzip test.zip @file.lst
Tampilkan konten daftar file test.zip
wzunzip -v test.zip
Tampilkan konten semua jenis file txt di file terkompresi
wzunzip -v test.zip *.txt
Dengan persiapan di atas, akan mudah bagi kita untuk menulis VBS untuk melakukan dekompresi file dan kompresi:
'test.vbs
'************************
'Di atas memulai program dengan objek shell
'************************
Set wshshell = wscript.createObject (wscript.shell)
Wshshell.run (c: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt)
'test.asp
'************************
'Di atas memulai program dengan objek shell
'************************
<bahasa skrip = vbscript.encode runat = server>
'Di atas memulai program dengan objek shell
Set wshshell = server.createObject (wscript.shell)
Issuccess = wshshell.run (c: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt, 1, true)
Jika issuccess = 0 lalu
Perintah Response.Write berhasil dieksekusi!
kalau tidak
Perintah respons.write gagal dieksekusi! Izin yang tidak mencukupi atau program tidak dapat berjalan di negara bagian DOS
akhiri jika
</script>
Ini sangat sederhana. menyukai:
Setelah mengunggah beberapa file dengan komponen unggah, Anda dapat mengemas beberapa file untuk memberikannya kepada orang lain untuk mengunduh file zip
Atau setelah mengunggah file zip, Anda dapat menggunakan program ini untuk mendekompresnya untuk memberikannya kepada orang lain untuk satu file unduhan
Sangat nyaman bagi pengguna! Saya akan menuliskan dua perubahan ini dalam artikel mendatang! Ada kelalaian yang pasti dalam artikel ini, tolong perbaiki saya!
Semua contoh di atas telah diuji pada Win2000+IIS5.0!