Two ways to achieve upload files with JSP

xiaoxiao2021-03-06  14

Using the Java Development Enterprise System, especially when involving work-related software development, the upload of documents is the requirements that customers often have to mention. Therefore, there is a good set of solutions to the solution can also be convenient. The development of this piece.

First of all, this article is for the development of the need to develop it, don't have the busy foot, haha ​​........

Nowadays, there is a lot of generally two ways to solve the file upload.

Cos.jar UploadBean.jar filemover.jar This is very common because he is easy to operate, we don't have to pay attention, the input and output flow of those files, let us free from the underlying stream .UploadFile, UploadBean, MultipartFormDataRequest <% @ page contentType = "text / html; charset gb2312 ="%> fbysss UploadBean exemplary </ title> <- meta http-equiv = "Content-Type"! Content = "text / html; charSet = ISO-8859-1" -> <! - meta http-equiv = "content-type" content = "text / html; charSet = GB2312" -> </ head> <Form name = "form1" method = "post" action = "sssupload.jsp" enctype = "multipart / form-data"> <input name = "title" type = "text" value = "Chinese"> <TD Class = "BODYSTYLE"> Annex </ TD> <TD Class = "BodyStyle"> <input name = "attach" type = "file" id = "attach" size = "50"> </ td> <input name = "ok" type = "submit" value = "Submit"> </ form> 2. Read the table SSSGetData.jsp <! - // ================= ============================================================================================================================================================================================================= ======= // file: UploadBean upload examples // function: to solve the Chinese garbled complete the file upload, upload and renamed provide solutions // author: fbysss // msn: jameslastchina@hotmail.com // == =========================</p> <p>======================================================== - > <% @ Page ContentType = "text / html; charset = GBK"%> <% @ page language = "java" import = "com.jspsmart.upload. *"%> <% @ page import = "java.text . SimpleDateFormat "%> <% @ page import =" java.io.file "%> <% @ page import =" java.util. * "%> <% @ Page import =" javazoom.upload. * "%> <% @ Page Import = "Uploadutilities.Filemover"%> <head> <meta http-equiv = "content-type" content = "text / html; charSet = GB2312"> </ head> <% Request.setCharacterencoding (" GBK "); // Setting the encoding format, no need to transfer one by one. FileMover filemover = new filemover (); // You can also use the JSP: UseBean in an instance. UploadBean upBean = new UploadBean (); MultipartFormDataRequest mrequest = null; Hashtable files = null; if (MultipartFormDataRequest.isMultipartFormData (request)) {mrequest = new MultipartFormDataRequest (request, null, 100 * 1024 * 1024, MultipartFormDataRequest.COSPARSER, "GBK" ); // Note that the encoding parameter String StT0 = MREQUEST.GETPARAMETER ("title"); "<BR> TITLE0 is:" stt0 "<br>"); string stt1 = new String ( Stt0.GetBytes ("ISO-8859-1"), "GBK"); Out.println ("<br> Title1 is:" stt1 "<br>"); // This is used to test whether the Title parameter is correct. When debugging, add a sentence if (true) return;</p> <p>files = mrequest.getFiles ();} // get file name before modification String sOldFileName = mrequest.getParameter ( "oldfilename"); out.println ( "sOldFileName:" sOldFileName); String sWebRootPath = request.getRealPath ( "/ "); // get the root of your web application. String spath = SWEBROOTPATH ​​ "attach"; int ifilecount = 0; string sserverfilename = ""; string slocalfilename = ""; // file gets IF ((files! = Null) | (! Files.isempty ())) {iFileCount = files.size (); UploadFile file = (UploadFile) files.get ( "attach"); sLocalFileName = file.getFileName (); out.println ( "sLocalFileName:" sLocalFileName); int ii = sLocalFileName.indexOf ( " "); // Take the suffix string sext = slocalfilename.substring (ii, slocalfilename.length ()); // Get no repetition name java.util.date dt = new java.util.date (System) .currentTimeMillis ()); SimpleDateFormat fmt = new SimpleDateFormat ( "yyyyMMddHHmmssSSS"); sServerFileName = fmt.format (dt); sServerFileName = sServerFileName sExt; // if the directory does not exist, a new File dir = new File (sPath ); If (! Dir.exists ()) {dir.mkdirs ();} UpBean.SetFolderstore (spath); // Set the directory UPBean.adduploadListener (filemover) you want to upload; // Add Filmover Monitor FileMover.setNewFileName (SserveFileName ); // Set file name upbean.store on the server (MREQUEST, "Attach"); // Upload Out.Println ("File Path IS" "/" SserverFileName);}%> Demo Notes: cos.jar, UploadBean.jar, filemover.jar These packs must be available.</p> <p>Must Download Address: UploadBean 1.5: http://wcarch/winnt/java/uploadbean1_5.zipfilemover 1.3: http://www.javazoom.net/jzservlets/uploadbean/addons/filemover1 .3.zip Reference Download Address: Chinesupload example: http://www.javazoom.net/jzservlets/uploadbean/addons/chineseupload.zip Refer to FBYSSS 2. ORG.APache.Struts.upload.formfileStruts 1.1.1 Org.apache.struts.upload.formfile class. Very convenient, don't write it yourself. You don't have to write a JSP to call JSPSmartupLoad to get it.</p> <p>Select upload file page: selfile.jsp ------------------------------------------ -------------------------------------- <% @ Taglib URI = "/ WEB-INF / Struts-html.tld "prefix =" html "%> <html: html> <html: form action =" / uploadsaction.do "ENCTYPE =" Multipart / Form-data "> <html: file property =" thefile "/ > <html: Submit /> </ html: form> </ html: html> ------------------------------- ------------------------------------ UPLOADACTION .java ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------- Import java.io. *; import javax.servlet.http. *; import Org .apache.struts.Action. *; import org.apache.struts.upload.formfile; / *** <p> Title: UploadAction </ p> * <p> description: Qrrsmms </ p> * <p> CopyRight : Copyright (c) 2004 jiahansoft </ p> * <p> Company: jiahansoft </ p> * @author wanghw * @version 1.0 * / public class UpLoadAction extends Action {public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest request , HttpServletResponse response) throws Exception {if (form instanceof uploadsForm) {// If the form is uploadsForm String encoding = request.getCharacterEncoding ();! If ((encoding = null) && (encoding.equalsIgnoreCase ( "utf-8"))) {Response.setContentType ("text / html; charset = GB2312"); // If no code is specified, the encoded format is GB2312} UPLOADFORM Theform = (UPLOADFORM) Form; FormFile File = theform.getthefile (); // Get uploaded Document Try {INPUTSTREAM Stream = file.getinputStream ();</p> <p>// read a file into String filePath = request.getRealPath ( "/"); // get the system path ByteArrayOutputStream baos = new ByteArrayOutputStream current (); OutputStream bos = new FileOutputStream (filePath "/" file.getFileName ()) ; // Create an output stream of upload file //system.out.println (FilePath "/" file.getFileName ()); int BytesRead = 0; byte [] buffer = new byte [8192]; while ((bytesRead) = stream.read (buffer, 0, 8192))! = -1) {bos.write (buffer, 0, bytesread); // Write files to serve the server} Bos.Close (); stream.close ();} Catch (Exception E) {system.err.print (e);} //request.settribute ("dat", file.getfilename ()); return mapping.findforward ("display");} return null;}} -------------------------------------------------- ---------------------------- UPLOADFORM.JAVA -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ------------ Import javax.servlet.http.http ServletRequest; import org.apache.struts.action. *; Import org.apache.struts.upload. *; / *** <p> Title: Uploadform </ p> * <p> Description: Qrrsmms </ p> * <p> Copyright: Copyright (c) 2004 jiahansoft </ p> * <p> Company: jiahansoft </ p> * @author wanghw * @version 1.0 * / public class upLoadForm extends ActionForm {public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org .apache.struts.webapp.upload.MaxLengthExceeded "; protected FormFile theFile; public FormFile getTheFile () {return theFile;} public void setTheFile (FormFile theFile) {this.theFile = theFile;</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-47082.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="47082" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.048</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'dkaz9p5OEI35wfR2qFcxH_2FV2uRaUc7MHL2QDRI6XUwx6ZnGONLBC4jwSWQneIbbfp3VS_2BBrBvsYmesS772D2PQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>