Baru -baru ini, saya telah melakukan pengunggahan file, unduh, dan buka file secara online. Pada awalnya, antarmuka unggahan file berisi formulir lain (seperti kotak input, kata sandi, dll.) Dan menghadapi banyak masalah selama proses unggahan. Di bawah ini saya menulis program pengujian yang secara bersamaan mengimplementasikan pengunggahan file, unduh, dan buka file secara online.
Pertama, silakan lihat renderingnya:
Kode inti:
paket com.jefry; impor java.io.file; impor java.io.fileInputStream; impor java.io.ioException; impor java.net.url; impor java.util.arraylist; impor java.util.iterator; impor java.util.list; impor javax.servlet.servletException; impor javax.servlet.servletoutputStream; impor javax.servlet.http.httpservlet; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; impor org.apache.commons.fileupload.fileItem; impor org.apache.commons.fileupload.disk.diskfileItemFactory; impor org.apache.commons.fileupload.servlet.servletfileupload; / ** * Kelas Implementasi Servlet Fileupload */ Kelas Publik Fileupload memperluas httpservlet {private static final long serialVersionuid = 1l; Private Static Final String FileDir = "f:/"; /*** Konstruktor default. */ FileUpload publik () {} Protected void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {string afilename = request.getParameter ("fileName"); String online = request.getParameter ("online"); FileInputStream di = null; ServeTeTutputStream out = null; boolean isonline = online! = null? Benar: false; coba {if (isOnline) {url u = URL baru ("file: ///" + filedir + afilename); response.setContentType (u.openconnection (). getContentType ()); response.setheader ("konten-disposisi", "inline; fileName ="+afilename); } else {response.setContentType ("Application/x-msdownload"); response.setHeader ("Disposisi konten", "lampiran; fileName =" + afilename); } di = FileInputStream baru (FileDir + Afilename); out = response.getoutputStream (); out.flush (); int aread = 0; while ((ARead = in.read ())! = -1 & in! = null) {out.write (AREAD); } out.flush (); } catch (throwable e) {e.printstacktrace (); } akhirnya {coba {in.close (); out.close (); } catch (throwable e) {e.printstacktrace (); }}} void dopost yang dilindungi (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {coba {diskfileItemFactory filefactory = new diskfileItemFactory (); Servletfileupload fu = servletfileupload baru (filefactory); Daftar fileItems = fu.parseRequest (permintaan); Iterator iter = fileitems.iterator (); String unggah = null; Tanggal String = NULL; Daftar <String> FileNames = ArrayList baru <string> (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (! item.isFormField ()) {// File string oldFileName = item.getName (); String newFileName = null; Int Delimiter = oldFileName.LastIndexOf ("/"); if (Delimiter == -1) newFileName = oldFileName.substring (pembatas + 1); lain newFileName = oldFileName; FileNames.Add (newFileName); item.write (file baru (FileDir + newFileName)); } else {// bentuk string fieldname = item.getFieldName (); if ("unggah" .Equals (fieldName)) {unggah = item.getString (); } else if ("date" .equals (fieldName)) {date = item.getString (); }}} request.setAttribute ("FileNames", fileNames); request.getRequestDispatcher ("download.jsp"). Forward (Request, Response); } catch (Exception e) {}}} index.jsp
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/org/ht4/t." <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="FileUpload" method="post" enctype="multipart/form-data"> <br> File 1: <input type="file" name="file1" /> <br> File 2: <input type = "file" name = "file2"/> <br> unggah: <input type = "text" name = "unggah"/> <br> Tanggal: <input type = "teks" name = "date"/> <br> <input type = "kirim" value = "kirim"/form
download.jsp
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/org/t. Impor = "java.util.list"%> <html> <head> <meta http-equiv = "konten-tipe" content = "text/html; charset = utf-8"> <itement> Sisipkan judul di sini </itement> </head> <br> <br> ----------- 直接下载 ------- </title> </head> <br> <br> ----------- 直接下载 ------- </title> </head> <br> <br> ----- ------- 直接下载 ------- </title> </head> <br> <br> ----------- 直接下载 ------- </title </head> <br> <br> ------ ) request.getAttribute ("FileNames"); untuk (string fileName: fileNames) { %> <form Action = "Fileupload" Metode = "get"> <input type = "hidden" name = "filename" value = "< %= fileName %>" /> <input type = "kirim" value = "下载: < %filename %>" /< /form} < %} <%--- fileNames) { %> <form action="FileUpload" method="get"> <input type="hidden" name="fileName" value="<%=fileName %>" /> <input type="hidden" name="online" value="yes" /> <input type="submit" value="Open:<%=fileName %>" /> </form> <% } %> </br> </body> </html>Artikel ini telah dikompilasi menjadi "Ringkasan Teknik Operasi Upload Java", dan semua orang dipersilakan untuk belajar dan membaca.
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.