Secara umum, ada dua cara untuk mengunggah gambar. File gambar yang ditulis ke database perlu dikonversi menjadi format aliran biner, yang menempati ruang basis data dan cocok untuk penyimpanan sejumlah kecil gambar. bahwa mereka relatif aman dan tidak mudah dihindari oleh pengguna.
Diimplementasikan di Struts2 (mengambil unggahan gambar sebagai contoh)
1. Daftar kode fileupload.jsp adalah sebagai berikut:
<%@ halaman bahasa = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <html> < head> <title> FileuplaodDemo di struts2 </iteme> </head> <body> <s: form action = "fileupload" method = "POST" enctype = "multipart/form-data" name space = "/"> <S: Nama file = "myFile" label = "myfile"> </s: file> <s: namefield name = "caption" label = "caption"> </s: textfield> <s: kirim label = "Kirim ">/S: Kirim> </s: Form> </body> </html>
2. Daftar fungsi showupload.jsp adalah sebagai berikut:
<%@ halaman bahasa = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <html> < head> <itement> showupload </iteme> </ head> <body> <div style = "padding: 3px; border: solid 1px #cccccc; text-align: center"> <img src = "unggah ges/<s : nilai properti = "imagefileName"/> "/> <br/> <s: nilai properti =" caption "/> </div>/body> </html>
3. Daftar kode fileuploadaction.java adalah sebagai berikut:
Paket com.chris; import java.io.*; import java.util.date; impor org.apache.struts2.servletactionContext; import com.opensymphony.xwork2.active onsupport; kelas publik. 572146812454L; private static final int buffer_size = 16 * 1024; // Perhatikan bahwa ketika file diunggah, <s: file // terikat ke myfile, myfileContentType, myfilefileName./so, myFileContentType, myfilefi harus disediakan at the the letries at the the the letsontentType, myfilefi pada myfilefilename Metode Set Lename MyFile; SetMyFileContentType (String ContentType) {System.out .println ("Jenis File:" + ContentType); ; ini .fileName = fileName;} public void setMyFile (file myfile) {this .myfile = myfile;} public string getImageFileName () {ret imagefileName;} public string getCaption () {ret urn caption;} public void captcaption (string captcaption ) {this .caption = caption;} private static void copy (file src, file dst) {coba {inputStream in = null; outputStream out = null; coba {in = new bufferedInputStream (FileInputStream baru (src), bu ffer_size); out = new bufferedoutputStream (FileOutputStream baru (dst), buffer_size); byte [] buffer = byte baru [buffer_size]; while (in.read (buffer)> 0) {out.write (buffer);}} akhirnya {if (if (if (buffer)> 0) {out.write (buffer); null! = in) {in.close ();} if (null! = out) {out.close ();}}} catch (exception e) {e.printStacktrace ();}} private static getExtention (string string (string string private (string string (string string private (string string (string private string (string private static (string private static fileName) {int pos = filename.LastIndExof ("."); return filename.substring (pos);}@overridepublic string execute () {imagefileName = new date (). getTime () + getExtention (fileName); file imagefile = File baru (servletActionContext.getSerVletContext (). getRealPath ("unggah") + "/" + imagefileName); copy (myfile, imagefile); return success;}}Catatan: Saat ini, hanya untuk kenyamanan tindakan menerapkan, Actionsupport diwarisi dan metode Execute () overrider
Pojo di Struts2 apa pun dapat digunakan sebagai tindakan
4.Struts.xml Daftar adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Struts Public "-// Apache Software Foundation // DTD Struts Configuration 2.0 // en" "http: // strut s.apache.org /dtds/struts-2.0.dtd "> <struts> <package name =" contoh "namespace ="/"extends =" struts-default "> <action name =" fileupload "> <interceptor -ref name =" FileuploadStack " /> <rence> /showupload.jsp </hasilnya> </chere> </packing> </struts>
5. Daftar Web.xml adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app versi = "2.4" xmlns = "http://java.sun.com/xml/ns/j2ee" xmlns: xsi = " http://www.w3.org/2001/xmlschema-instance"xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/ J2EE/WEB-APP_2_4.XSD "> <TERFILTER> <TERFERTER-NAME> struts-cleanup </tiler-name> <nilter-class> org.apache.struts2.dispatcher.ActionContextCleanup </filter-class> </filter> <nyner-Mapping> <nilter-name> struts-cleanup </tiler-name> <rucs Pattern>/* </rerl-pattern> </tiler-Mapping> <nilter> <nilter-name> struts2 </fi LTER -Name> <STERFER-CLASS> org.apache.struts2.dispatcher.filterdispatcher </tilter-class> </tiler> <nilter-Mapping> <nilter-name> struts2 </filter-na me> <URL-Patterns >/ *</RURL-PATERS> </TERFERTER-MAPPING> <E "
Konten di atas adalah semua konten cara mengunggah gambar di Java Struts2 yang diperkenalkan kepada Anda.