<FORM METHOD="POST" ENCTYPE="multipart/form-data" TINDAKAN="/jspSmartUpload/upload.jsp"> <INPUT TYPE="FILE" NAMA="MYFILE"> <INPUT TYPE="KIRIM"> </BENTUK> |
<!--
Nama file: unggah.html
Penulis: Yu Yiqi dari Pusat Produksi Perangkat Lunak Zongheng ([email protected])
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transisi//EN">
<html>
<kepala>
<title>Unggah file</title>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
</kepala>
<tubuh>
<p> </p>
<p align="center">Unggah pilihan file</p>
<METODE BENTUK="POST" ACTION="jsp/do_upload.jsp"
ENCTYPE="multipart/form-data">
<input type="hidden" name="TEST" value="bagus">
<lebar tabel="75%" border="1" align="center">
<tr>
<td><div align="tengah">1.
<masukan tipe="FILE" nama="FILE1" size="30">
</div></td>
</tr>
<tr>
<td><div align="tengah">2.
<masukan tipe="FILE" nama="FILE2" size="30">
</div></td>
</tr>
<tr>
<td><div align="tengah">3.
<masukan tipe="FILE" nama="FILE3" size="30">
</div></td>
</tr>
<tr>
<td><div align="tengah">4.
<masukan tipe="FILE" nama="FILE4" size="30">
</div></td>
</tr>
<tr>
<td><div align="tengah">
<input type="kirim" name="Kirim" value="Unggah!">
</div></td>
</tr>
</tabel>
</BENTUK>
</tubuh>
</html> |
<%-- Nama file: do_upload.jsp Penulis: Yu Yiqi dari Pusat Produksi Perangkat Lunak Zongheng ([email protected]) --%> <%@ halaman contentType="teks/html; charset=gb2312" bahasa="java" import="java.util.*,com.jspsmart.upload.*" errorPage="" %> <html> <kepala> <title>Halaman pemrosesan pengunggahan file</title> <meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312"> </kepala> <tubuh> <% // Membuat objek SmartUpload baru SmartUpload su = new SmartUpload(); //Unggah inisialisasi su.initialize(pageContext); // Tetapkan batas unggahan // 1. Batasi panjang maksimum setiap file yang diunggah. // su.setMaxFileSize(10000); // 2. Batasi panjang total data yang diupload. // su.setTotalMaxFileSize(20000); // 3. Mengatur file yang boleh diupload (dibatasi ekstensinya), hanya file doc dan txt yang diperbolehkan. // su.setAllowedFilesList("doc,txt"); // 4. Mengatur file yang dilarang untuk diupload (dibatasi ekstensinya), melarang upload file dengan exe, bat, File dengan ekstensi jsp, htm, html dan file tanpa ekstensi. // su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); //Unggah file su.upload(); // Simpan semua file yang diunggah ke direktori yang ditentukan int count = su.save("/upload"); out.println(count+"File berhasil diupload!<br>"); //Gunakan objek Permintaan untuk mendapatkan nilai parameter out.println("TEST="+su.getRequest().getParameter("TEST") +"<BR><BR>"); // Ekstrak informasi file yang diunggah satu per satu, dan simpan file secara bersamaan. untuk (int i=0;i<su.getFiles().getCount();i++) { com.jspsmart.upload.File file = su.getFiles().getFile(i); // Lanjutkan jika file tidak ada if (file.isMissing()) lanjutkan; // Menampilkan informasi file terkini out.println("<TABLE BORDER=1>"); out.println("<TR><TD>Nama Formulir (Nama Bidang)</TD><TD>" + file.getFieldName() + "</TD></TR>"); out.println("<TR><TD>Panjang file (Ukuran)</TD><TD>" + file.getSize() + "</TD></TR>"); out.println("<TR><TD>Nama File (Nama File)</TD><TD>" + file.getFileName() + "</TD></TR>"); out.println("<TR><TD>Ekstensi File (FileExt)</TD><TD>" + file.getFileExt() + "</TD></TR>"); out.println("<TR><TD>Nama lengkap file (NamaJalur File)</TD><TD>" + file.getFilePathName() + "</TD></TR>"); keluar.println("</TABLE><BR>"); // Simpan file sebagai // file.saveAs("/upload/" + myFile.getFileName()); // Simpan ke direktori dengan direktori akar aplikasi WEB sebagai direktori akar file // file.saveAs("/upload/" + myFile.getFileName(), su.SAVE_VIRTUAL); // Simpan ke direktori dimana direktori akar sistem operasi adalah direktori akar file // file.saveAs("c:\temp\" + myFile.getFileName(), su.SAVE_PHYSICAL); } %> </tubuh> </html> |
<!-- Nama file: unduh.html Penulis: Yu Yiqi dari Pusat Produksi Perangkat Lunak Zongheng ([email protected]) --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transisi//EN"> <html> <kepala> <judul>Unduh</judul> <meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312"> </kepala> <tubuh> <a href="jsp/do_download.jsp">Klik untuk mengunduh</a> </tubuh> </html> |
<%@ halaman contentType="teks/html;charset=gb2312"
import="com.jspsmart.upload.*" %><%
// Membuat objek SmartUpload baru SmartUpload su = new SmartUpload();
//Inisialisasi su.initialize(pageContext);
//Atur contentDisposition ke null untuk mencegah browser membuka file secara otomatis.
// Pastikan file diunduh setelah mengklik link. Jika tidak disetel, ketika ekstensi file yang diunduh adalah //doc, browser akan otomatis membukanya dengan word. Ketika ekstensinya adalah pdf,
//Browser akan dibuka dengan acrobat.
su.setContentDisposition(null);
// Unduh file su.downloadFile("/upload/Cara mendapatkan pot emas pertama saya.doc");
%> |
unduhan file kekosongan publik (String s, String s1, String s2, int i)
melempar ServletException, IOException, SmartUploadException
{
jika(s==batal)
melempar IllegalArgumentException baru("File '" + s +
"' tidak ditemukan (1040).");
if(s.sama dengan(""))
melempar IllegalArgumentException baru("File '" + s +
"' tidak ditemukan (1040).");
if(!isVirtual(s) && m_denyPhysicalPath)
throw new SecurityException("Jalur fisik adalah
ditolak (1035).");
jika(adalahVirtual))
s = m_application.getRealPath(s);
java.io.File file = java.io.File baru;
FileInputStream fileinputstream = FileInputStream baru(file);
panjang l = file.panjang();
bendera boolean = false;
ke dalam k = 0;
byte abyte0[] = byte baru[i];
jika(s1==nol)
m_response.setContentType("aplikasi/x-msdownload");
kalau tidak
if(s1.panjang() == 0)
m_response.setContentType("aplikasi/x-msdownload");
kalau tidak
m_response.setContentType(s1);
m_response.setContentLength((int)l);
m_contentDisposition = m_contentDisposition != nol ?
m_contentDisposition : "lampiran;";
jika(s2 == nol)
m_response.setHeader("Disposisi Konten",
m_contentDisposition + " nama file = " +
toUtf8String(getFileName(s)));
kalau tidak
if(s2.panjang() == 0)
m_response.setHeader("Disposisi Konten",
m_contentDisposition);
kalau tidak
m_response.setHeader("Disposisi Konten",
m_contentDisposition + " nama file=" + toUtf8String(s2));
sementara((panjang)k < l)
{
int j = fileinputstream.baca(abyte0, 0, i);
k += j;
m_response.getOutputStream().write(abyte0, 0, j);
}
fileinputstream.close();
}
/**
* Konversikan karakter Cina dalam nama file menjadi string berkode UTF8 sehingga nama file yang disimpan dapat ditampilkan dengan benar saat mengunduh.
* Pusat Produksi Perangkat Lunak Zongheng Yu Yiqi 2003.08.01
* Nama file asli @param* @return nama file yang disandikan ulang*/
String statis publik toUtf8String(String s) {
StringBuffer sb = StringBuffer baru();
untuk (int i=0;i<s.length();i++) {
char c = s.charAt(i);
jika (c >= 0 && c <= 255) {
sb.tambahkan(c);
} kalau tidak {
byte[]b;
mencoba {
b = Karakter.toString(c).getBytes("utf-8");
} catch (Pengecualian misalnya) {
Sistem.keluar.println(ex);
b = byte baru[0];
}
for (int j = 0; j < b.panjang; j++) {
int k = b[j];
jika (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).
toUpperCase());
}
}
}
kembali sb.toString();
} |