1. Ide untuk mengunggah file struts
Saya juga telah berbicara tentang komponen Fileupload sebelumnya. Ini memiliki fungsi yang kuat, tetapi operasinya rumit dan rumit. Kali ini, unggahan file juga didukung di Strust dan Fileupload dikemas, yang jauh lebih nyaman untuk digunakan.
Inilah tag dan kelas:
<html: file properti = "sesuai dengan nama properti di ActionForm">
Gunakan tag ini untuk mengunggah file, tetapi untuk menerima konten, Anda harus mengandalkan org.apache.struts.upload.formfile
Antarmuka selesai.
2. Realisasi
Sh.jsp:
<%@ page language = "java" import = "java.util.*" pageenCoding = "utf-8"%> <%@ taglib uri = "http://jakarta.apache.org/struts/tags-bean" prefix = "bean"%> <%@ taglib URI = "http://jakarta.apache.org/struts/tags-html" prefix = "html"%> <%@ taglib uri = "http://jakarta.apache.org/struts/tags logic" prefix = "logic"%> <! 4.01 Transisi // en "> <html> <head> <title> sh.jsp </itement> <meta http-equiv =" content-type "content =" text/html; properti = "photo"> </html: file> <html: kirim nilai = "unggah"> </html: kirim> </html: form> </body> </html>
Unggah informasi.java:
Paket com.zyy.struts.form; impor org.apache.struts.action.actionForm; impor org.apache.struts.upload.formfile; kelas publik unggah informasi memperluas actionForm {private formfile foto; Public FormFile getPhoto () {return photo; } public void setPhoto (FormFile Photo) {this.photo = photo; }} Iptimestamp.java:
Paket com.zyy.util; import java.text.simpledateFormat; impor java.util.date; import java.util.random; kelas publik iptimestamp {private simpleDateFormat sdf = null; Private String ip = null; iptimestamp publik () {} public iptimestamp (string ip) {this.ip = ip; } public String getIptiMerand () {StringBuffer buf = new StringBuffer (); if (this.ip! = null) {string s [] = this.ip.split ("//."); untuk (int i = 0; i <s.length; i ++) {buf.append (this.addzero (s [i], 3)); }} buf.append (this.getTimestamp ()); Acak r = acak baru (); untuk (int i = 0; i <3; i ++) {buf.append (r.nextint (10)); } return buf.toString (); } public String getDate () {this.sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss.sss"); kembalikan this.sdf.format (tanggal baru ()); } public string getTimestamp () {this.sdf = new SimpleDateFormat ("yyyymmddhhmmssssss"); kembalikan this.sdf.format (tanggal baru ()); } private string addZero (string str string, int len) {stringBuffer s = new stringBuffer (); S. Laporan (str); while (s.length () <len) {s.insert (0, "0"); } return s.toString (); } public static void main (string args []) {System.out.println (iptimestamp baru ("192.168.1.1"). getIptiMerand ()); }}Unggahan.java:
Paket com.zyy.struts.action; import java.io.file; import java.io.fileoutputStream; import java.io.inputStream; import java.io.outputStream; import javax.servlet.http.htpservletrequest; impor javax.servlet.htp.htpservletrequest; impor javax.servlet.htp.htppservletrequest; impor javax.servlet.htp.htppservletrequest; impor javax.servlet.htp.htppservletRequest; impor javax.servlet.htppservletequest; impor javax.servlet.htppservletequest; import javax.servlet org.apache.struts.action.action; impor org.apache.struts.action.actionForm; impor org.apache.structs.action.actionforward; impor org.apache.structs.action.actionmapping; impor com.zyy.structs.sform.upploadform; aksi impor {Actionyy.util.util. HttpservletRequest Request, respons httpservletResponse) melempar pengecualian {unggahForm unggahForm = (unggahForm) formulir; Iptimestamp ips = iptimestamp baru (request.getRemoteAddr ()); // nama file string fileName = ips.getIptiMerand () + "." + unggahForm.getPhoto (). getFileName (). split ("//.") [unggahForm.getPhoto (). getFileName (). split ("//."). Panjang - 1]; // output path file outfile = file baru (super.getServer (). GetserVletContext () .getRealPath ("/") + "unggah" + file.separator + fileName); // folder tempat gambar disimpan file file = file baru (super.getServlet (). GetserVletContext () .getRealPath ("/") + "unggah"); if (! file.exists ()) {file.mkdir (); } InputStream input = unggahForm.getPhoto (). GetInputStream (); OutputStream output = new FileOutputStream (outFile); data byte [] = byte baru [1024]; int temp = 0; while ((temp = input.read (data, 0, 1024))! = -1) {output.write (data); } output.close (); input.close (); kembali nol; }}Struts-config.xml:
<? Xml Version = "1.0" encoding = "iso-8859-1"?> <! Doctype Struts-Config Public "-// Apache Software Foundation // Dtd Struts Configuration 1.2 // en" "http://jakarta.apache.org/struts/dtds/struts--conf <Form-beans> <Form-bean name = "unggahForm" type = "com.zyy.struts.form.uploadform"> </form-bean> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> </unggahan = "unggahan =" unggah "/unggahan" name = "unggahForm" scope = "request" type = "com.zyy.struts.action.uploadAction"> </action> </action-pappings> <pesan-sumber daya parameter = "resource.messageresources"/> </struts-config>
Karena yang saya simpan adalah super.getServlet (). Getservercontext (). Getrealpath ("/")+ "unggah"
Ini adalah jalur nyata dari direktori virtual di bawah folder unggahan.
Dapat dilihat bahwa prinsip unggahan file dalam struts sama dengan fileupload, tetapi struts dikemas, jadi jelas jauh lebih nyaman untuk digunakan daripada menggunakan komponen fileupload saja.
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.