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 " " b> already exists!"; return msg;} if (! Dir.exists ()) {Boolean Result = dir.mkdirs (); if (result == false) {msg = "error:
Create Directory " " b> 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]); } } %>
hEAD>