Awalnya saya ingin menggunakan AJAX untuk mengunggah file tanpa menyegarkan, tetapi kemudian ternyata tidak mudah untuk diterapkan. Setelah lama mencari online, akhirnya saya menemukan implementasi "pseudo-AJAX". pembaca.
Pertama kita memerlukan file HTML atau JSP yang diupload, sebagai berikut:
<FORM METHOD="POST" ACTION="../servlet/FileUploadServlet" enctype="multipart/form-data" target="hidden_frame" onSubmit="showmsg();" style="margin:0;padding:0" >
<masukan tipe="file" nama="sfile" style="lebar:450">
<input type="hidden" name="act" value="upload">
<INPUT type="submit" value="Unggah file"><span id="msg"></span>
<br>
<font color="red">Mendukung pengunggahan file JPG, JPEG, GIF, BMP, SWF, RMVB, RM, AVI</font>
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
</bentuk>
Diantaranya, atribut TARGET dari FORM [b] sangat penting [/b]. Kirimkan ACTION dari FORM ke IFRAME tersembunyi untuk dieksekusi, dan kemudian isi operasi di MSG saat kembali berikut:
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar IOException, ServletException{
PrintWriter keluar = respon.getWriter();
respon.setCharacterEncoding("utf-8");
respon.setHeader("Charset","utf-8");
respon.setHeader("Kontrol Cache", "tanpa cache");
String filepath="",msg="",ext="";
SmartUpload su = SmartUpload baru();
boolean succ=benar;
. . . . . .
mencoba{
su.inisialisasi(getServletConfig(),permintaan,respons);
su.setMaxFileSize(102400000);
su.setTotalMaxFileSize(102400000);
su.setAllowedFilesList(mediaExt+","+flashExt+","+imgExt);
su.setDeniedFilesList("exe,kelelawar,,");
su.upload();
untuk (int i=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = su.getFiles().getFile(i);
if (file.isMissing()) lanjutkan;
String fileName=UploadFileUtils.returnRandomFileName(file.getFileExt());
ext=file.getFileExt().toLowerCase();
. . . . . . . . . . .
msg="<a href="#">Pengunggahan berhasil!</a>";
}
}menangkap(tuntutan SmartUploadException){
succ=salah;
msg="<font color=red>Upload gagal: Silakan periksa ekstensi file atau ukuran file!</font>";
}menangkap(Pengecualian ex){
succ=salah;
msg="<font color=red>Upload gagal: Silakan periksa ekstensi file atau ukuran file!</font>";
ex.printStackTrace();
}
pesan=Escape.escape(pesan);
jika (berhasil)
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');parent.backCallIframe('"+Escape.escape(ext)+"','"+Escape. escape(jalur file)+"')");
kalau tidak
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');");
keluar.tutup();
}