java

位置:IT落伍者 >> java >> 浏览文章

struts实现多图片上传


发布日期:2019年06月02日
 
struts实现多图片上传

packagecomninetownszhangcstrutsaction;

publicclassConstant{

privateConstant(){

}

publicstaticIntegerpictureSize=**;//单位为byte上传文件最大限额

publicstaticStringpictureDirectory=upload\\;

}

packagecomninetownszhangcstrutsaction;

importjavaioFile;

importjavaioFileOutputStream;

importjavaioInputStream;

importjavaioOutputStream;

importjavautilCollection;

importjavautilHashtable;

importjavautilIterator;

importjavautilregexMatcher;

importjavautilregexPattern;

importjavaxservlethttpHttpServletRequest;

importjavaxservlethttpHttpServletResponse;

importorgapachestrutsactionActionForm;

importorgapachestrutsuploadFormFile;

importorgapachestrutsuploadMultipartRequestHandler;

publicclassPictureUpLoad{

privatePictureUpLoad(){

}

privatestaticbooleanisValidFile(StringfileName){

String[]validFiles={gifjpgjpegjpebmppngtxt/plaintextdocrar};

booleanret=false;

for(inti=;i<validFileslength;i++){

if(fileNametoLowerCase()endsWith(validFiles[i])){

ret=true;

break;

}

}

returnret;

}

privatestaticStringrebuildFileName(StringfileName){

javatextSimpleDateFormatsdf=newjavatextSimpleDateFormat(

yyyyMMddHHmmss);

javautilDatedate=newjavautilDate();

returnsdfformat(date)+_+fileName;

}

privatestaticStringlianjieFileName(StringfileName){

return+fileName;

}

privatestaticbooleanisDirectoryExists(Stringpath){

javaioFilefile=newFile(path);

if(!fileexists()){

returnfilemkdir();

}else

returntrue;

}

privatestaticString[]getFileName(StringfilesName){

Patternx=pile(\\w*\\s+\\w*);

String[]fileName=filesNamesplit(\\s+);

Matchert=xmatcher(filesName);

Systemoutprintln(tmatches());

returnfileName;

}

publicstaticString[]fileUpLoad(ActionFormform

HttpServletRequestrequestHttpServletResponseresponse)

throwsException{

Stringpath=;

StringfileName=;

MultipartRequestHandlerhandle=formgetMultipartRequestHandler();

HashtablehashTable=handlegetFileElements();

Collectioncln=hashTablevalues();

Iteratoriterator=erator();

while(iteratorhasNext()){

FormFilefile=(FormFile)iteratornext();

path=requestgetRealPath(/)+ConstantpictureDirectory;

if(isDirectoryExists(path)==false)returnnull;

if(filegetFileName()==null)

returnnull;

if(filegetFileSize()>ConstantpictureSize)

returnnull;

if(!isValidFile(filegetContentType()))

returnnull;

try{

InputStreamin=filegetInputStream();

OutputStreamout=newFileOutputStream(path

+rebuildFileName(filegetFileName()));///表示保存的路径可以修改为load/

intbytesRead=;

byte[]buffer=newbyte[];

while((bytesRead=inread(buffer))!=){

outwrite(bufferbytesRead);

}

outclose();

inclose();

}catch(Exceptione){

eprintStackTrace();

}

fileName=fileName+lianjieFileName(rebuildFileName(filegetFileName()));

}

returngetFileName(fileName);

}

}

packagecomninetownszhangcstrutsaction;

importjavaioFileOutputStream;

importjavaioInputStream;

importjavaioOutputStream;

importjavautilCollection;

importjavautilHashtable;

importjavautilIterator;

importjavaxservlethttpHttpServletRequest;

importjavaxservlethttpHttpServletResponse;

importorgapachestrutsactionAction;

importorgapachestrutsactionActionForm;

importorgapachestrutsactionActionForward;

importorgapachestrutsactionActionMapping;

importorgapachestrutsuploadFormFile;

importorgapachestrutsuploadMultipartRequestHandler;

importcomninetownszhangcstrutsformUploadForm;

/**

*MyEclipseStrutsCreationdate:

*

*XDocletdefinition:

*

*@strutsactioninput=newjspvalidate=true

*@strutsactionforwardname=listpath=listjspredirect=true

*/

publicclassUploadActionextendsAction{

/*

*GeneratedMethods

*/

/**

*Methodexecute

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@returnActionForward

*/

publicActionForwardexecute(ActionMappingmappingActionFormform

HttpServletRequestrequestHttpServletResponseresponse){

//TODOAutogeneratedmethodstub

UploadFormupdForm=(UploadForm)form;

try{

String[]fileNames=PictureUpLoadfileUpLoad(updFormrequestresponse);

requestsetAttribute(fileNamesfileNames);

Systemoutprintln(=========+fileNameslength);

for(Stringfile:fileNames){

Systemoutprintln(filename+file);

}

}catch(Exceptione){

//TODOAutogeneratedcatchblock

eprintStackTrace();

}

returnmappingfindForward(index);

}

}

packagecomninetownszhangcstrutsform;

importjavaxservlethttpHttpServletRequest;

importorgapachestrutsactionActionErrors;

importorgapachestrutsactionActionForm;

importorgapachestrutsactionActionMapping;

/**

*MyEclipseStruts

*Creationdate:

*

*XDocletdefinition:

*@strutsformname=uploadForm

*/

publicclassUploadFormextendsActionForm{

/*

*Generatedfields

*/

/**nameproperty*/

privateStringname;

/*

*GeneratedMethods

*/

/**

*Methodvalidate

*@parammapping

*@paramrequest

*@returnActionErrors

*/

publicActionErrorsvalidate(ActionMappingmapping

HttpServletRequestrequest){

//TODOAutogeneratedmethodstub

returnnull;

}

/**

*Methodreset

*@parammapping

*@paramrequest

*/

publicvoidreset(ActionMappingmappingHttpServletRequestrequest){

//TODOAutogeneratedmethodstub

}

/**

*Returnsthename

*@returnString

*/

publicStringgetName(){

returnname;

}

/**

*Setthename

*@paramnameThenametoset

*/

publicvoidsetName(Stringname){

thisname=name;

}

}

indexjsp

<%@pagelanguage=javapageEncoding=GBK%>

<!DOCTYPEHTMLPUBLIC//WC//DTDHTMLTransitional//EN>

<html>

<head>

<title>strutsuploadbyzhangc</title>

</head>

<body>

<a>create</a><br>

</body>

</html>

newjsp

<%@pagelanguage=javapageEncoding=GBK%>

<%@tagliburi=/WEBINF/strutsbeantldprefix=bean%>

<%@tagliburi=/WEBINF/strutshtmltldprefix=html%>

<html>

<head>

<title>strutsuploadbyzhangc</title>

<scriptlanguage=javascript>

varrnum=;

functionaddRow()

{

varoT=documentgetElementById(oTable);

varnewTR=oTinsertRow(oTrowslength);

newTRid=row+rnum;

varnewTD=newTRinsertCell();

varnewTD=newTRinsertCell();

newTDsetAttribute(colSpan);

newTDinnerText=file;

newTDinnerHTML=<inputname=\file

+rnum

+\type=\file\><inputname=\del\type=\button\value=\删除\onClick=\deleteRow(+rnum+);\>;

rnum++;

}

functiondeleteRow(line)

{

oTabledeleteRow(documentgetElementById(row+line)rowIndex);

}

</script>

</head>

<body>

<formname=updFormmethod=postaction=uploaddoenctype=multipart/formdata>

<tableid=oTable>

<tr>

<td>name:</td>

<td><inputname=nametype=text></td>

</tr>

<tr>

<td>上传图片:</td>

<td><inputtype=filename=temp><inputtype=buttonname=addvalue=多图片上传onClick=addRow()></td>

</tr>

<tr>

<td><inputname=subtype=submitvalue=上传></td>

</tr>

</table>

</form>

</body>

</html>

nextjsp

<%@pagelanguage=javaimport=javautil*pageEncoding=ISO%>

<%@taglibprefix=curi=javasun/jsp/jstl/core%>

<%

Stringpath=requestgetContextPath()+/upload;

StringbasePath=requestgetScheme()+://

+requestgetServerName()+:+requestgetServerPort()

+path+/;

%>

<!DOCTYPEHTMLPUBLIC//WC//DTDHTMLTransitional//EN>

<html>

<head>

<base<%=basePath%>>

<title>MyJSPnextjspstartingpage</title>

<metahttpequiv=pragmacontent=nocache>

<metahttpequiv=cachecontrolcontent=nocache>

<metahttpequiv=expirescontent=>

<metahttpequiv=keywordscontent=keywordkeywordkeyword>

<metahttpequiv=descriptioncontent=Thisismypage>

<!

<linkrel=stylesheettype=text/css>

>

</head>

<body>

<c:forEachvar=fileNameitems=${fileNames}begin=>

<imgalt=width=height=src=<%=basePath%>${fileName}>

</c:forEach>

</body>

</html>

<?xmlversion=encoding=UTF?>

<!DOCTYPEstrutsconfigPUBLIC//ApacheSoftwareFoundation//DTDStrutsConfiguration//EN/struts/dtds/strutsconfig__dtd>

<strutsconfig>

<datasources/>

<formbeans>

<formbeanname=uploadFormtype=comninetownszhangcstrutsformUploadForm/>

</formbeans>

<globalexceptions/>

<globalforwards/>

<actionmappings>

<action

input=newjsp

path=/uploadname=uploadForm

type=comninetownszhangcstrutsactionUploadAction

scope=request>

<forward

name=index

path=/nextjsp/>

</action>

</actionmappings>

<messageresourcesparameter=comninetownszhangcstrutsApplicationResources/>

</strutsconfig>

               

上一篇:Eclipse的启动机制研究

下一篇:Struts2请求处理流程及源码分析