`
txf2004
  • 浏览: 6868923 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

.struts2上传文件

 
阅读更多

struts2上传文件

java 2011-03-11 23:00:50 阅读18 评论0 字号:订阅

jsp文件
Java代码
<%@pagecontentType="text/html;charset=UTF-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
<html>
<head>
<title>Struts2FileUpload</title>
</head>
<body>
<s:textname=""></s:text>
<formaction="fileUpload.action"method="POST"enctype="multipart/form-data">


文件标题:<inputtype="text"name="title"size="50"/><br/>
选择文件:<inputtype="file"name="upload"size="50"/><br/>
选择文件:<inputtype="file"name="upload"size="50"/><br/>
选择文件:<inputtype="file"name="upload"size="50"/><br/>
<inputtype="submit"value="上传"/>
</form>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8" %>  <%@ taglib prefix="s" uri="/struts-tags" %>  <html>  <head>      <title>Struts2 File Upload</title>  </head>  <body>    <s:text name=""></s:text>      <form action="fileUpload.action" method="POST" enctype="multipart/form-data">                  文件标题:<input type="text" name="title" size="50"/><br/>          选择文件:<input type="file" name="upload" size="50"/><br/>          选择文件:<input type="file" name="upload" size="50"/><br/>          选择文件:<input type="file" name="upload" size="50"/><br/>         <input type="submit" value=" 上传 "/>              </form>  </body>  </html>  


baseAction文件
Java代码

//pizza
packagecom.trendcom.upload.action;
importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

publicclassBaseActionextendsActionSupport{

publicHttpServletRequestgetRequest(){
returnServletActionContext.getRequest();
}

publicHttpServletResponsegetResponse(){
returnServletActionContext.getResponse();
}

publicHttpSessiongetSession(){
returngetRequest().getSession();
}

publicServletContextgetServletContext(){
returnServletActionContext.getServletContext();
}

publicStringgetRealyPath(Stringpath){
returngetServletContext().getRealPath(path);
}
}

//pizza   
package com.trendcom.upload.action;   
import javax.servlet.ServletContext;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import javax.servlet.http.HttpSession;     
import org.apache.struts2.ServletActionContext;     
import com.opensymphony.xwork2.ActionSupport;    
 public class BaseAction extends ActionSupport {    
 public HttpServletRequest getRequest(){   
return ServletActionContext.getRequest();   
}     
public HttpServletResponse getResponse(){   
return ServletActionContext.getResponse();  
 }     
public HttpSession getSession(){   
return getRequest().getSession();   
}     
public ServletContext getServletContext(){   
return ServletActionContext.getServletContext();  
 }     
public String getRealyPath(String path){  
 return getServletContext().getRealPath(path);  
 }   
}     


action文件
Java代码

packagecom.trendcom.upload.action;

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.ArrayList;
importjava.util.List;

publicclassUploadFileActionextendsBaseAction{
privatestaticfinalintBUFFER_SIZE=16*1024;
//文件标题
privateStringtitle;
//用File数组来封装多个上传文件域对象
privateFile[]upload;
//用String数组来封装多个上传文件名
privateString[]uploadFileName;
//用String数组来封装多个上传文件类型
privateString[]uploadContentType;
//保存文件的目录路径(通过依赖注入)
privateStringsavePath;
//以下为所有属性的getter和setter。省略。。。
//自己封装的一个把源文件对象复制成目标文件对象
privatestaticbooleancopy(Filesrc,Filedst){
booleanresult=false;
InputStreamin=null;
OutputStreamout=null;
try{
in=newBufferedInputStream(newFileInputStream(src),BUFFER_SIZE);
out=newBufferedOutputStream(newFileOutputStream(dst),
BUFFER_SIZE);
byte[]buffer=newbyte[BUFFER_SIZE];
intlen=0;
while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
result=true;
}catch(Exceptione){
e.printStackTrace();
result=false;
}finally{
if(null!=in){
try{
in.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
if(null!=out){
try{
out.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
returnresult;
}
@Override
publicStringexecute()throwsException{
File[]srcFiles=this.getUpload();
List<String>successFileList=newArrayList<String>();
//处理每个要上传的文件
for(inti=0;i<srcFiles.length;i++){
//根据服务器的文件保存地址和原文件名创建目录文件全路径
StringdstPath=getRealyPath(getSavePath())
+"//"+this.getUploadFileName()[i];
FiledstFile=newFile(dstPath);
if(copy(srcFiles[i],dstFile)){
successFileList.add(getUploadFileName()[i]);
}
}
getRequest().setAttribute("successFileList",successFileList);
returnSUCCESS;
}

publicStringgetTitle(){
returntitle;
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
publicFile[]getUpload(){
returnupload;
}
publicvoidsetUpload(File[]upload){
this.upload=upload;
}
publicString[]getUploadFileName(){
returnuploadFileName;
}
publicvoidsetUploadFileName(String[]uploadFileName){
this.uploadFileName=uploadFileName;
}
publicString[]getUploadContentType(){
returnuploadContentType;
}
publicvoidsetUploadContentType(String[]uploadContentType){
this.uploadContentType=uploadContentType;
}
publicStringgetSavePath(){
returnsavePath;
}
publicvoidsetSavePath(StringsavePath){
this.savePath=savePath;
}
}

package com.trendcom.upload.action;    import java.io.BufferedInputStream;  import java.io.BufferedOutputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileOutputStream;  import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;  import java.util.ArrayList;  import java.util.List;    public class UploadFileAction extends BaseAction {   private static final int BUFFER_SIZE=16*1024;      // 文件标题      private String title;      // 用File数组来封装多个上传文件域对象      private File[] upload;      // 用String数组来封装多个上传文件名      private String[] uploadFileName;      // 用String数组来封装多个上传文件类型      private String[] uploadContentType;      // 保存文件的目录路径(通过依赖注入)      private String savePath;      //以下为所有属性的getter和setter。省略。。。      // 自己封装的一个把源文件对象复制成目标文件对象      private static boolean  copy(File src, File dst) {       boolean result=false;          InputStream in = null;          OutputStream out = null;          try {              in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);              out = new BufferedOutputStream(new FileOutputStream(dst),                      BUFFER_SIZE);              byte[] buffer = new byte[BUFFER_SIZE];              int len = 0;              while ((len = in.read(buffer)) > 0) {                  out.write(buffer, 0, len);              }              result=true;          } catch (Exception e) {              e.printStackTrace();              result=false;          } finally {              if (null != in) {                  try {                      in.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }              if (null != out) {                  try {                      out.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }          }          return result;      }      @Override      public String execute() throws Exception {          File[] srcFiles = this.getUpload();          List<String> successFileList=new ArrayList<String>();          // 处理每个要上传的文件          for (int i = 0; i < srcFiles.length; i++) {              // 根据服务器的文件保存地址和原文件名创建目录文件全路径              String dstPath = getRealyPath(getSavePath())                      + "//" + this.getUploadFileName()[i];              File dstFile = new File(dstPath);              if(copy(srcFiles[i], dstFile)){                 successFileList.add(getUploadFileName()[i]);              }          }          getRequest().setAttribute("successFileList", successFileList);          return SUCCESS;      }         public String getTitle() {    return title;   }   public void setTitle(String title) {    this.title = title;   }   public File[] getUpload() {    return upload;   }   public void setUpload(File[] upload) {    this.upload = upload;   }   public String[] getUploadFileName() {    return uploadFileName;   }   public void setUploadFileName(String[] uploadFileName) {    this.uploadFileName = uploadFileName;   }   public String[] getUploadContentType() {    return uploadContentType;   }   public void setUploadContentType(String[] uploadContentType) {    this.uploadContentType = uploadContentType;   }   public String getSavePath() {    return savePath;   }   public void setSavePath(String savePath) {    this.savePath = savePath;   }  }      


配置文件
Java代码

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<packagename="com.trendcom.upload.action"extends="struts-default">
<actionname="fileUpload"class="com.trendcom.upload.action.UploadFileAction">
<interceptor-refname="fileUpload">
<!--配置允许上传的文件类型,多个用","分隔-->
<paramname="allowedTypes">
      image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png,image/pjpeg
</param>
<!--配置允许上传的文件大小,单位字节-->
<paramname="maximumSize">102400</param>
</interceptor-ref>
<interceptor-refname="defaultStack"/>
<!--动态设置Action中的savePath属性的值-->
<paramname="savePath">/upload</param>
<resultname="input">/index.jsp</result>
<resultname="success">/success.jsp</result>
</action>
</package>
</struts>

<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE struts PUBLIC          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"          "http://struts.apache.org/dtds/struts-2.0.dtd">    <struts>           <package name="com.trendcom.upload.action" extends="struts-default">          <action name="fileUpload"  class="com.trendcom.upload.action.UploadFileAction">              <interceptor-ref name="fileUpload">                <!-- 配置允许上传的文件类型,多个用","分隔 -->                <param name="allowedTypes">            image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png, image/pjpeg                </param>                <!-- 配置允许上传的文件大小,单位字节 -->                <param name="maximumSize">102400</param>             </interceptor-ref>             <interceptor-ref name="defaultStack" />              <!-- 动态设置Action中的savePath属性的值 -->              <param name="savePath">/upload</param>                 <result name="input">/index.jsp</result>              <result name="success">/success.jsp</result>          </action>      </package>  </struts>    


所需lib包括(struts2基本包就不在这里列出来)
Java代码

commons-fileupload-1[1].2.jar
commons-io-1.4.jar

commons-fileupload-1[1].2.jar  commons-io-1.4.jar  


上传类型.当中可能有些是旧的如果想查看struts2中的上传类型可以下载本文的附件.
FileUploadInterceptor
把FileUploadInterceptor.class代替struts2包中类后,就会在控制台中输出所上传的文件是什么类型
Java代码

DescriptionofDataContentTypicalFilenameExtensions


MIMEtype/subtype

TextandText-RelatedTypes
HTMLtextdata(RFC1866)htmlhtmtext/html
Plaintext:documents;programlistingstxtcc++plcchtext/plain
Richtext(obsolete-replacedbytext/enriched)text/richtext
Structureenhancedtext(etx?)text/x-setext
Enrichedtextmarkup(RFC1896)text/enriched
Tab-separatedvalues(tabular)(tsv?)text/tab-separated-values
SGMLdocuments(RFC1874)text/sgml
Speechsynthesisdata(MVPSolutions)talktext/x-speech

DocumentStylesheetTypes
CascadingStylesheetscsstext/css
DSSSL-onlinestylesheetsapplication/dsssl(proposed)

ImageTypes
GIFgifimage/gif
X-Windowsbitmap(b/w)xbmimage/x-xbitmap
X-Windowspixelmap(8-bitcolor)xpmimage/x-xpixmap
PortableNetworkGraphicspngimage/x-png
ImageExchangeFormat(RFC1314)iefimage/ief
JPEGjpegjpgjpeimage/jpeg
TIFFtifftifimage/tiff
RGBrgbimage/rgb
image/x-rgb
GroupIIIFax(RFC1494)g3fimage/g3fax
XWindowdumpformatxwdimage/x-xwindowdump
MacintoshPICTformatpictimage/x-pict
PPM(UNIXPPMpackage)ppmimage/x-portable-pixmap
PGM(UNIXPPMpackage)pgmimage/x-portable-graymap
PBM(UNIXPPMpackage)pbmimage/x-portable-bitmap
PNM(UNIXPPMpackage)pnmimage/x-portable-anymap
MicrosoftWindowsbitmapbmpimage/x-ms-bmp
CMUrasterrasimage/x-cmu-raster
KodakPhoto-CDpcdimage/x-photo-cd
ComputerGraphicsMetafilecgmimage/cgm
NorthAm.PresentationLayerProtocolimage/naplps
CALSType1or2milcalimage/x-cals
FractalImageFormat(IteratedSystems)fifimage/fif
QuickSilveractiveimage(Micrografx)dsfimage/x-mgx-dsf
CMXvectorimage(Corel)cmximage/x-cmx
Wavelet-compressed(Summus)wiimage/wavelet
AutoCadDrawing(SoftSource)dwgimage/vnd.dwg
image/x-dwg
AutoCadDXFfile(SoftSource)dxfimage/vnd.dxf
image/x-dxf
SimpleVectorFormat(SoftSource)svfimage/vnd.svf
alsovector/x-svf

Audio/Voice/MusicRelatedTypes
"basic"audio-8-bitu-lawPCMausndaudio/basic
Macintoshaudioformat(AIpple)aifaiffaifcaudio/x-aiff
Microsoftaudiowavaudio/x-wav
MPEGaudiompaabsmpegaaudio/x-mpeg
MPEG-2audiomp2ampa2audio/x-mpeg-2
compressedspeech(EchoSpeechCorp.)esaudio/echospeech
Toolvoxspeechaudio(Voxware)voxaudio/voxware
RapidTransitcompressedaudio(FastMan)lccapplication/fastman
Realaudio(ProgressiveNetworks)raramapplication/x-pn-realaudio
NIFFmusicnotationdataformatapplication/vnd.music-niff
MIDImusicdatammidx-music/x-midi
Koanmusicdata(SSeyo)skpapplication/vnd.koan
application/x-koan
Speechsynthesisdata(MVPSolutions)talktext/x-speech

VideoTypes
MPEGvideompegmpgmpevideo/mpeg
MPEG-2videompv2mp2vvideo/mpeg-2
MacintoshQuicktimeqtmovvideo/quicktime
Microsoftvideoavivideo/x-msvideo
SGIMovieformatmovievideo/x-sgi-movie
VDOlivestreamingvideo(VDOnet)vdovideo/vdo
Vivostreamingvideo(Vivosoftware)vivvideo/vnd.vivo
video/vivo
SpecialHTTP/WebApplicationTypes
Proxyautoconfiguration(Netscapebrowsers)pacapplication/x-ns-proxy-autoconfig
SeeChapter6application/x-www-form-urlencoded
SeeChapter9application/x-www-local-exec
SeeChapter9(Netscapeextension)multipart/x-mixed-replace
SeeChapter9andAppendixBmultipart/form-data
NetscapeCooltalkchatdata(Netscape)icex-conference/x-cooltalk
Interactivechat(Ichat)application/x-chat

ApplicationTypes

Text-Related
PostScriptaiepspsapplication/postscript
MicrosoftRichTextFormatrtfapplication/rtf
AdobeAcrobatPDFpdfapplication/pdf
application/x-pdf
MakerInterchangeFormat(FrameMaker)mifapplication/vnd.mif
application/x-mif
Troffdocumentttrroffapplication/x-troff
TroffdocumentwithMANmacrosmanapplication/x-troff-man
TroffdocumentwithMEmacrosmeapplication/x-troff-me
TroffdocumentwithMSmacrosmsapplication/x-troff-ms
LaTeXdocumentlatexapplication/x-latex
Tex/LateXdocumenttexapplication/x-tex
GNUTexInfodocumenttexinfotexiapplication/x-texinfo
TeXdviformatdviapplication/x-dvi
MacWritedocument??application/macwriteii
MSworddocument??application/msword
WordPerfect5.1document??application/wordperfect5.1
SGMLapplication(RFC1874)application/sgml
OfficeDocumentArchitectureodaapplication/oda
EnvoyDocumentevyapplication/envoy
WangInfo.TranferFormat(Wang)application/wita
DECDocumentTransferFormat(DEC)application/dec-dx
IBMDocumentContentArchitecture(IBM)application/dca-rft

CommonGroundDigitalPaper(NoHandsSoftware)application/commonground
FrameMakerDocuments(Frame)docfmfrmframeapplication/vnd.framemaker
application/x-framemaker
Remoteprintingatarbitraryprinters(RFC1486)application/remote-printing

Archive/CompressedArchives
Gnutarformatgtarapplication/x-gtar
4.3BSDtarformattarapplication/x-tar
POSIXtarformatustarapplication/x-ustar
OldCPIOformatbcpioapplication/x-bcpio
POSIXCPIOformatcpioapplication/x-cpio
UNIXshshellarchivesharapplication/x-shar
DOS/PC-Pkzippedarchivezipapplication/zip
MacintoshBinhexedarchivehqxapplication/mac-binhex40
MacintoshStuffitArchivesitseaapplication/x-stuffit
FractalImageFormatfifapplication/fractals
Binary,UUencodedbinuuapplication/octet-stream
PCexecutableexeapplication/octet-stream
WAIS"sources"srcwsrcapplication/x-wais-source
NCSAHDFdataformathdfapplication/hdf

DownloadableProgram/Scripts
Javascriptprogramjslsmochatext/javascript
application/x-javascript
VBScriptprogramtext/vbscript
UNIXbourneshellprogramshapplication/x-sh
UNIXc-shellprogramcshapplication/x-csh
Perlprogramplapplication/x-perl
Tcl(ToolControlLanguage)programtclapplication/x-tcl
Atomicmailprogramscripts(obsolete)application/atomicmail
Slatedocuments-executableenclosures(BBN)application/slate
Undefinedbinarydata(oftenexecutableprogs)application/octet-stream
RISCOSExecutableprograms(ANTLimited)application/riscos

Animation/Multimedia
AndrewToolkitinsetapplication/andrew-inset
FutureSplashvectoranimation(FutureWave)splapplication/futuresplash
mBEDmultimediadata(mBED)mbdapplication/mbedlet
MacromediaShockwave(Macromedia)application/x-director
Sizzlerreal-timevideo/animationapplication/x-sprite
PowerMediamultimedia(RadMedia)radapplication/x-rad-powermedia

Presentation
PowerPointpresentation(Microsoft)ppzapplication/mspowerpoint
PointPluspresentationdata(NetScene)cssapplication/x-pointplus
ASAPWordPower(SoftwarePublishingCorp.)aspapplication/x-asap
AstoundWebPlayermultimediadata(GoldDisk)asnapplication/astound
SpecialEmbeddedObject
OLEscripte.g.VisualBasic(Ncompass)axsapplication/x-olescript
OLEObject(Microsoft/NCompass)odsapplication/x-oleobject
OpenScapeOLE/OCXobjects(Business@Web)oppx-form/x-openscape
VisualBasicobjects(Amara)wbaapplication/x-webbasic
Specializeddataentryforms(AlphaSoftware)frmapplication/x-alpha-form
client-serverobjects(WayfarerCommunications)wfxx-script/x-wfxclient
GeneralApplications
Undefinedbinarydata(oftenexecutableprogs)application/octet-stream
CALS(U.S.D.O.Ddataformat-RFC1895)application/cals-1840
Pointcastnewsdata(Pointcast)pcnapplication/x-pcn
Excelspreadsheet(Microsoft)application/vnd.ms-excel
application/x-msexcel
application/ms-excel
PowerPoint(Microsoft)pptapplication/vnd.ms-powerpoint
application/ms-powerpoint
MicrosoftProject(Microsoft)application/vnd.ms-project
Worksdata(Microsoft)application/vnd.ms-works
MAPIdata(Microsoft)application/vnd.ms-tnef
Artgallerydata(Microsoft)application/vnd.artgalry
SourceViewdocument(DatawareElectronics)svdapplication/vnd.svd
Truedoc(Bitstream)application/vnd.truedoc
NetInstall-softwareinstall(20/20Software)insapplication/x-net-install
CarbonCopy-remotecontrol/access(Microcom)ccvapplication/ccv
Spreadsheets(VisualComponents)vtsworkbook/formulaone
Cybercashdigitalmoney(Cybercash)application/cybercash
FormatforsendinggenericMacintoshfilesapplication/applefile
Activemessage--connecttoactivemailapp.application/activemessage
X.400mailmessagebodypart(RFC1494)application/x400-bp
USENETnewsmessageid(RFC1036)application/news-message-id
USENETnewsmessage(RFC1036)application/news-transmission

MultipartTypes(mostlyemail)
Messageswithmultiplepartsmultipart/mixed
Messageswithmultiple,alternativepartsmultipart/alternative
Messagewithmultiple,relatedpartsmultipart/related
Multiplepartsaredigestsmultipart/digest
Forreportingofemailstatus(admin.)multipart/report
Orderofpartsdoesnotmattermultipart/parallel
Macintoshfiledatamultipart/appledouble
Aggregatemessages;descriptorasheadermultipart/header-set
Containerforvoice-mailmultipart/voice-message
HTMLFORMdata(seeCh.9andApp.B)multipart/form-data
Infinitemultiparts-SeeChapter9(Netscape)multipart/x-mixed-replace

MessageTypes(mostlyemail)
MIMEmessagemessage/rfc822
Partialmessagemessage/partial
Messagecontainingexternalreferencesmessage/external-body
MessagecontainingUSENETnewsmessage/news
HTTPmessagemessage/http

2D/3DData/VirtualRealityTypes
VRMLdatafilewrlvrmlx-world/x-vrml
(changingtomodel/vrml)

WIRL-VRMLdata(VREAM)vrwx-world/x-vream
Play3D3dscenedata(Play3D)p3dapplication/x-p3d
ViscapeInteractive3dworlddata(Superscape)svrx-world/x-svr
WebActive3ddata(PlasticThought)wvrx-world/x-wvr
QuickDraw3Dscenedata(Apple)3dmfx-world/x-3dmf

Scientific/Math/CADTypes
Chemicaltypes--tocommunicateinformationaboutchemicalmodelschemical/*(severalsubtypes)
Mathematicanotebookmaapplication/mathematica
Computationalmeshesfornumericalsimulationsmshx-model/x-mesh
(evolvingtomodel/mesh)

Vis5D5-dimensionaldatav5dapplication/vis5d
IGESmodels--CAD/CAM(CGM)dataigsapplication/iges
(evolvingtomodel/iges?)

AutocadWHIPvectordrawingsdwfdrawing/x-dwf


LargelyPlatform-SpecificTypes

SiliconGraphicsSpecificTypes
ShowcasePresentationsshowcaseslidesscshoshowapplication/x-showcase
InsightManualpagesinsinsightapplication/x-insight
IrisAnnotatordataanoapplication/x-annotator
DirectoryViewerdirapplication/x-dirview
SoftwareLicenselicapplication/x-enterlicense
Faxmanagerfilefaxmgrapplication/x-fax-manager
Faxjobdatafilefaxmgrjobapplication/x-fax-manager-job
IconBookdataicnbkapplication/x-iconbook
?wbapplication/x-inpview
Installablesoftwarein'inst'formatinstapplication/x-install
Mailfoldermailapplication/x-mailfolder
?ppppagesapplication/x-ppages
Dataforprinter(vialpr)sgi-lprapplication/x-sgi-lpr
Softwarein'tardist'formattardistapplication/x-tardist
Softwareincompressed'tardist'formatztardistapplication/x-ztardist
WingZspreadsheetwkzapplication/x-wingz
OpenInventor3-Dscenesivgraphics/x-inventor

分享到:
评论

相关推荐

    Struts2文件批量上传.zip

    Struts2文件批量上传.zip Struts2文件批量上传.zip Struts2文件批量上传.zip Struts2文件批量上传.zip Struts2文件批量上传.zip

    Struts2详解,Struts2与Struts1的区别

    新手必备,看完绝对思路清晰。醍醐灌顶啊! 一. Struts2介绍 1. Struts2简介 2. Struts2和Struts1的常见... 实现文件上传 12. Struts2的拦截器 13. 拒绝表单重复提交 四. OGNL表达式 五. Struts2中常用标签

    Struts2属性文件详解

    如果需要实现自己的配置管理器,开发者则可以实现一个实现Configuration接口的类,该类可以自己加载Struts 2配置文件. struts.locale 指定Web应用的默认Locale. struts.i18n.encoding 指定Web应用的默认编码集.该...

    struts2上传必备jar包,避免出现struts2的升级漏洞!自己吃亏后分享

    这个bug是由Struts2上传文件后return SUCCESS后报的错误: java.lang.AbstractMethodError: be.telio.mediastore.ui.upload.GarryMultiPartRequest.cleanUp()V at org.apache.struts2.dispatcher.multipart....

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...

    struts文件上传.pdf

    struts文件上传.pdf 文件上传struts文件上传.pdf 文件上传struts文件上传.pdf 文件上传struts文件上传.pdf 文件上传

    struts2实现多文件上传下载

    需求 1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定) 2.能够对上传路径进行配置文件指定(upload.properties),使用...多文件 上传 下载 随意文件 java Struts2 单例 配置 动态读取 李顺利

    Struts2上传文件出错

    -- 系统常量定义,定义上传文件字符集编码 --&gt; &lt;constant name="struts.i18n.encoding" value="UTF-8"&gt; &lt;!-- 系统常量定义,定义上传文件临时存放路径 --&gt; &lt;constant name="struts.multipart.saveDir" ...

    struts2实现文件上传下载

    在struts2基础上实现的包括单文件、多文件的上传及下载

    Struts2上传文件(直接用request)

    Struts2上传文件(直接用request)

    Struts2文件上传源码

    Struts2文件上传源码 Struts2文件上传源码 Struts2文件上传源码 Struts2文件上传源码 Struts2文件上传源码

    struts2上传文件进度条显示

    struts2上传文件的进度条显示,绝对可用! 所达到效果 1.显示总文件大小 2.显示已上传文件大小 3.显示当前进度(百分比控制) 4.显示剩余上传时间 5.显示当前速度 (本人研究了很久才搞出来的,希望大家指教...

    Struts2技术手册-Struts2精华教程-电子书

    本书内容非常全面,涵盖了众多书籍所有知识要点,并结合作者自己经验总结而编写,内容相当丰富,是查找技术的好帮手及学习Struts2的不二选择 众所周知,一般书籍为了销售需要,往往很少的知识点,却需要添加大量的...

    struts1.x多文件上传

    struts1.x实现多文件上传struts1.x实现多文件上传struts1.x实现多文件上传struts1.x实现多文件上传struts1.x实现多文件上传struts1.x实现多文件上传

    Struts2入门教程(全新完整版)

    3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何...

    struts2文件上传

    struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传

    Struts2多个文件上传

    Struts2多个文件上传 多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传。都大同小异。

    Struts批量上传文件实例word

    Struts批量上传文件.doc Struts批量上传文件.doc Struts批量上传文件.docStruts批量上传文件.doc

    struts2学习笔记十二(第12讲.Struts2的文件上传和下载)

    NULL 博文链接:https://zhaolianyang.iteye.com/blog/883505

Global site tag (gtag.js) - Google Analytics