JavaBean implements multi-file upload

xiaoxiao2021-03-06  40

Seeing many uploaded files online, it is a JSP program. Each time you encounter files uploaded, you need to copy this upload code and make changes accordingly, and it is extremely inconvenient. In order to enhance the reusability of the code, I wrote this universal uploader to javabean, please please contact us. First, download Commons-fileUpload-1.0.zip and commons-beanutils-1.7.0.0.zip, http://apache.freeelamp.com/jakarta/commons/fileupload/binaries/commons-fileupload-1.0.ziphtp://apache .freeelamp.com / jakarta / commit / beanutils / binaries / commit-beanutils-1.7.0.zip Decompression gets commons-fileupload-1.0-beta-1.jar and commons-beanutils.jar, and put two packages to Under the "YourWebApp / Web-INF / LIB" folder. UploadFile.java

Package com.esurfer.common;

Import javax.servlet.http.httpservletRequest; import java.util. *; import java.text.SIMPLEDATEFORMAT; Import java.io. *; import org.apache.commons.fileupload. *;

Public class uploadfile {private string tmpdir; private httpservletRequest request;

Public httpservletRequest getRequest () {return request;}

Public void setRequest (httpservletRequest request) {this.Request = request;} public string gettmpdir () {return tmpdir;}

Public void settmpdir (string string) {tmpdir = string;} public string getUpdir () {return updir;}

public void setUpdir (String string) {updir = string;} / ** * Create directory with the name 'path' * @param path * @return * / private String MkDir (String path) {String msg = null; java.io .File dir;

// Create new file object dir = new java.io.file (path); if (dir == null) {msg = "error:
CAN't create Empty Directory!"; Return msg;} if (DIR) .isfile ()) {msg = "Error:
File Name " " already exists!"; return msg;} if (! Dir.exists ()) {Boolean Result = dir.mkdirs (); if (result == false) {msg = "error:
Create Directory " " failed!"; Return msg ;} return msg;} else {} return msg;} / ** * Get current datetime used to name a file uploaded * @return * / private String getCurDateTime () {SimpleDateFormat df = new SimpleDateFormat ( "yyMMddHHmmss"); return df .format (new date ());} / ** * Upload files * @return * / public string [] UPLOADFILE () {String MSG = ""; String IM g = null; // the final filename of the file uploaded String sFinalName = ""; DiskFileUpload fu = new DiskFileUpload (); // maximum size in byte that permitted to upload fu.setSizeMax (51200); // maximum size in byte that will be stored in memory fu.setSizeThreshold (4096); // the tempory path that the file (s) will be stored // when greater than getSizeThreshold () fu.setRepositoryPath (tmpdir); // begin read information of upload List FileItems = NULL;

Try {fileItems = fu.parsequest (request);} catch (fileuploadext e) {system.err.println ("Upload File Failed!");

// process each file uploaded Iterator iter = fileItems.iterator (); // root dir to store file uploaded String uproot = updir; // ArrayList used to save uploaded file name ArrayList uploadedFiles = new ArrayList (); String filepath = updir; String opMsg = mkdir (filepath); if (opMsg == null) {while (ore.hasnext ()) {fileItem item = (fileItem) iter.next (); // ignore the Other Type of form Field (s) Except File if (! item.isformfield ()) {string name = item.getname (); long size = item.getsize (); if (((Name == Null || Name.Equals (")) && size == 0) {Continue;} name = name.replace ('//', '/'); file fullfile = new file (name); // get the extension string sextension = fullfile.getname (). Substring . FullFile.getName () lastIndexOf ( "."), FullFile.getName () length ());. // Generate the new filename String sNewFileName = getCurDateTime () sExtension; // Set the final filename to sNewFileName sFinalName = sNewFileName ; // crete the file with the generated name file savedfile = new file (filepath, snewfilename); // if the file already exist, assign a new name to it for (int K = 0; savedfile.exists (); k

) {// get the file name from the variable String sTmpFileName = sNewFileName; // get the file name except the extension String sFileName = sNewFileName.substring) (0, sNewFileName.lastIndexOf ( "."); // combine a new file name savedFile = new File (filepath, sFileName k sExtension); // get the new generated file name as the final filename sFinalName = sFileName k sExtension;} try {item.write (savedFile);} catch (Exception e1 ) {System.err.println ("UPLOAD FILED!");} UPLOADEDFILES.ADD (SfinalName);}}} String SuploadedFileNames [] = new string [UPLOADED FILES.SIZE ()]; UPLOADEDFILES.TOARRAY (SUPLOADEDFILENAMES); RETURN SUPLOADFILENAMES;}} file upload test, fileupload.jsp

<% @ Page PageEncoding = "GBK"%>

<% @ page contenttype = "text / html; charset = GBK"%>

<% String contextPath = getServletContext (). GetRealPath ("/");

String UploadTMPPATH = (ContextPath "TMP"). Replace ('//', '/');

String UploadRootPath = (CONTEXTPATH ​​ "UPLOAD"). Replace ('//', '/');

String Saction = Request.getParameter ("Operate"); if (saction == null) SACTION = ""

IF (Saction.equals ("UPLOAD")) {

Up.SetTMPDIR (UploadTMPPATH);

Up.setupdir (UPLOADROOTPATH);

Up.setRequest (Request);

String [] suploadFilenames = up.uploadfile ();

For (int i = 0; i

Out.println (SupploadFilenames [i]);

}

}

%>

Upload </ Title></p> <p></ hEAD></p> <p><body></p> <p><center></p> <p><H1> Upload File Test </ h1></p> <p><form name = "UPLOADFORM" Method = "post" action = "? Operate = UPLOAD" ENCTYPE = "Multipart / Form-Data"></p> <p>FILE 1: <input name = "file1" size = "40" type = "file"> <br /></p> <p>File 2: <input name = "file2" size = "40" type = "file"> <br /></p> <p>File 3: <input name = "file3" size = "40" type = "file"> <br /></p> <p><Input Name = "Upload" type = "submit" value = "upload" /></p> <p></ form></p> <p></ center></p> <p></ body></p> <p></ html></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-77941.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="77941" 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.049</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 = 'vWUo2E_2FUzQ5ckrrOni6PAyQqOyMvkVJbaYPy84jYBjHNOK9uBH1ywULdJkpm8E8FLa_2F0A9KfkXGQVceqYIAXZw_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>