Artikel ini membagikan kode spesifik untuk unduhan file servlet untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Tidak aman untuk mengekspos direktori file langsung ke pengguna. Jadi, Anda harus menggunakan servlets, dan dengan cara ini, file akan disimpan lebih banyak. Mereka dapat diambil dari sistem file, dihasilkan oleh perhitungan dalam database, atau diambil dari tempat aneh lainnya.
DownloadserVlet kelas publik memperluas httpservlet {private string contentType = "application/x-msdownload"; Private String ENC = "UTF-8"; private string fileroot = ""; / ** * Inisialisasi ContentType, Enc, Fileroot */ public void init (servletConfig config) melempar ServletException {string tempstr = config.getInitparameter ("contentType"); if (tempstr! = null &&! tempstr.equals ("")) {contentType = tempstr; } tempstr = config.getInitparameter ("enc"); if (tempstr! = null &&! tempstr.equals ("")) {enc = tempstr; } tempstr = config.getInitparameter ("fileroot"); if (tempstr! = null &&! tempstr.equals ("")) {fileroot = tempstr; }} Protected void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {string filepath = request.getParameter ("filepath"); String fullFilePath = fileroot + filepath; /*Baca file*/ file file = file baru (fullfilePath); /*Jika file ada*/ if (file.exists ()) {string filename = urlencoder.encode (file.getName (), enc); response.reset (); response.setContentType (ContentType); response.addheader ("disposisi konten", "lampiran; nama file =/" " + nama file +"/""); int filelength = (int) file.length (); response.setContentLength (filelength); /*Jika panjang file lebih besar dari 0*/ if (filelength! = 0) {/*Buat aliran input*/ inputStream instream = FileInputStream baru (file); byte [] buf = byte baru [4096]; /*Buat aliran output*/ servletoutputStream servletos = response.getoutputStream (); int readlength; while (((readlength = instream.read (buf))! = -1)) {servletos.write (buf, 0, readlength); } instream.close (); servletos.flush (); servletos.close (); }}} Web.xml
<servlet> <servlet-name> downloadServlet-name> <servlet-class> org.mstar.servlet.downloadServletServer-class> <Inch-param> <param-name> filerootparam-name> <param-value> D:/Tempparam-Value> init-param> <pamar-naLa-n-n-n-n-name> <pamar-naram> <parar-param> <parar-na-n-n-n-n-n-n-n-near> <param-value> Aplikasi/x-msdownloadparam-value> init-param> <Inch-param> <param-name> encparam-name> <param-value> UTF-8param-Value >>> init-param> <lervlet-Mappatter> <servlet-name> downloadservlet> <rver-podat> <servlet> downloadservlet> <rver-podat> <servlet> downloadservlet> <rver-pattern> <servlet> downloadservlet> <rver-podat> <sverbiter> download> downloadservlet> <rver-pigater>
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.