FileUtils文件上传Word文件下载.docx

上传人:b****6 文档编号:19835744 上传时间:2023-01-10 格式:DOCX 页数:19 大小:20.78KB
下载 相关 举报
FileUtils文件上传Word文件下载.docx_第1页
第1页 / 共19页
FileUtils文件上传Word文件下载.docx_第2页
第2页 / 共19页
FileUtils文件上传Word文件下载.docx_第3页
第3页 / 共19页
FileUtils文件上传Word文件下载.docx_第4页
第4页 / 共19页
FileUtils文件上传Word文件下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

FileUtils文件上传Word文件下载.docx

《FileUtils文件上传Word文件下载.docx》由会员分享,可在线阅读,更多相关《FileUtils文件上传Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。

FileUtils文件上传Word文件下载.docx

packagename="

logsin"

extends="

struts-default"

13.

14.<

actionname="

upload"

15.class="

com.dingxun.upload.FileUploadAction"

method="

16.<

interceptor-refname="

fileUpload"

17.<

paramname="

allowedTypes"

18.image/bmp,image/png,image/gif,image/jpeg,image/jpg

19.,image/x-png,image/pjpeg

20.<

/param>

21.<

maximumSize"

1048576<

22.<

/interceptor-ref>

23.<

defaultStack"

<

24.<

SavePath"

/upload<

25.<

resultname="

success"

/resultUpload.jsp<

/result>

26.<

/action>

27.

28.<

/package>

29.<

--<

includefile="

example.xml"

/>

-->

30.

31.<

/struts>

DOCTYPEstrutsPUBLIC

"

<

value="

<

class="

<

<

image/bmp,image/png,image/gif,image/jpeg,image/jpg

image/x-png,image/pjpeg

备注1:

在action中添加<

主要用来设定保存上传文件的路径,相对路径和绝对路径都可

备注2:

上面那个拦截器可要可不要,因为限制上传文件大小和类型在拦截器里配置不能起作用,要用常量配置如下面的限制文件大小的

上面的常量覆盖了default.properties里的设置

2:

FileUploadAction代码如下:

01.importjava.io.BufferedInputStream;

02.importjava.io.BufferedOutputStream;

03.importjava.io.File;

04.importjava.io.FileInputStream;

05.importjava.io.FileNotFoundException;

06.importjava.io.FileOutputStream;

07.importjava.io.IOException;

08.importjava.io.InputStream;

09.importjava.io.OutputStream;

10.

11.importmons.io.FileUtils;

12.importorg.apache.struts2.ServletActionContext;

14.

15.publicclassFileUploadAction{

16.

17.privatefinalstaticintBUFFER_SIZE=16*1024;

18.privateFileupload;

19.privateStringuploadFileName;

20.privateStringuploadContentType;

21.privateStringtitle;

22.privateStringSavePath;

23.privateStringss;

24.

25.

26.publicStringgetSavePath(){

27.returnSavePath;

28.}

29.

30.publicvoidsetSavePath(StringsavePath){

31.SavePath=savePath;

32.}

33.

34.publicStringgetTitle(){

35.returntitle;

36.}

37.

38.publicvoidsetTitle(Stringtitle){

39.this.title=title;

40.}

41.

42.publicFilegetUpload(){

43.returnupload;

44.}

45.

46.publicvoidsetUpload(Fileupload){

47.this.upload=upload;

48.}

49.

50.publicStringgetUploadContentType(){

51.returnuploadContentType;

52.}

53.

54.publicvoidsetUploadContentType(StringuploadContentType){

55.this.uploadContentType=uploadContentType;

56.}

57.

58.publicStringgetUploadFileName(){

59.returnuploadFileName;

60.}

61.

62.publicvoidsetUploadFileName(StringuploadFileName){

63.this.uploadFileName=uploadFileName;

64.}

65.

66.

67.

68./*

69.*copy这个方法主要是用来实现文件上传的,实现的原理就是分别打开输入输出流,进行文件拷贝的

70.*/

71.privatevoidcopy(Filesrc,Filedist){

72.InputStreamin=null;

73.BufferedOutputStreamout=null;

74.

75.try{

76.in=newBufferedInputStream(newFileInputStream(src),BUFFER_SIZE);

77.out=newBufferedOutputStream(newFileOutputStream(dist),BUFFER_SIZE);

78.byte[]buffer=newbyte[BUFFER_SIZE];

79.intlen=0;

80.try{

81.while((len=in.read(buffer))>

0){

82.out.write(buffer,0,len);

83.}

84.}catch(IOExceptione){

85.e.printStackTrace();

86.}

87.}catch(FileNotFoundExceptione){

88.e.printStackTrace();

89.}finally{

90.if(null!

=in){

91.try{

92.in.close();

93.}catch(IOExceptione){

94.e.printStackTrace();

95.}

96.}

97.if(null!

=out){

98.try{

99.out.close();

100.}catch(IOExceptione){

101.e.printStackTrace();

102.}

103.}

104.}

105.}

106.

107.

108.publicStringupload(){

109.StringdistPath=ServletActionContext.getServletContext().getRealPath(getSavePath())+"

\\"

+getUploadFileName();

110.System.out.println(distPath);

111.FiledisFile=newFile(distPath);

112.System.out.println("

文件类型:

+getUploadContentType());

113.//try{

114.//FileUtils.copyFile(upload,disFile);

115.//}catch(IOExceptione){

116.//e.printStackTrace();

117.//}

118.copy(upload,disFile);

119.return"

;

120.}

121.

122.}

importjava.io.BufferedInputStream;

importjava.io.BufferedOutputStream;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

importmons.io.FileUtils;

importorg.apache.struts2.ServletActionContext;

publicclassFileUploadAction{

privatefinalstaticintBUFFER_SIZE=16*1024;

privateFileupload;

privateStringuploadFileName;

privateStringuploadContentType;

privateStringtitle;

privateStringSavePath;

privateStringss;

publicStringgetSavePath(){

returnSavePath;

}

publicvoidsetSavePath(StringsavePath){

SavePath=savePath;

publicStringgetTitle(){

returntitle;

publicvoidsetTitle(Stringtitle){

this.title=title;

publicFilegetUpload(){

returnupload;

publicvoidsetUpload(Fileupload){

this.upload=upload;

publicStringgetUploadContentType(){

returnuploadContentType;

publicvoidsetUploadContentType(StringuploadContentType){

this.uploadContentType=uploadContentType;

publicStringgetUploadFileName(){

returnuploadFileName;

publicvoidsetUploadFileName(StringuploadFileName){

this.uploadFileName=uploadFileName;

/*

*copy这个方法主要是用来实现文件上传的,实现的原理就是分别打开输入输出流,进行文件拷贝的

*/

privatevoidcopy(Filesrc,Filedist){

InputStreamin=null;

BufferedOutputStreamout=null;

try{

in=newBufferedInputStream(newFileInputStream(src),BUFFER_SIZE);

out=newBufferedOutputStream(newFileOutputStream(dist),BUFFER_SIZE);

byte[]buffer=newbyte[BUFFER_SIZE];

intlen=0;

try{

while((len=in.read(buffer))>

0){

out.write(buffer,0,len);

}

}catch(IOExceptione){

e.printStackTrace();

}

}catch(FileNotFoundExceptione){

e.printStackTrace();

}finally{

if(null!

=in){

try{

in.close();

}catch(IOExceptione){

e.printStackTrace();

=out){

out.close();

}

publicStringupload(){

StringdistPath=ServletActionContext.getServletContext().getRealPath(getSavePath())+"

System.out.println(distPath);

FiledisFile=newFile(distPath);

System.out.println("

//try{

//FileUtils.copyFile(upload,disFile);

//}catch(IOExceptione){

//e.printStackTrace();

//}

copy(upload,disFile);

return"

}

备注:

1:

ServletActionContextcontext=ServletActionContext.getServletContext();

2:

ServletActionContext.getServletContext().getRealPath(getSavePath())得到上传文件目的文件夹的实际路径

3:

ServletActionContext.getServletContext().getRealPath(getSavePath())+"

+getUploadFileName()一个文件的实际路径,这个主要是用来建立输出流

如FiledisFile=newFile(distPath)

OutputStreamout=newBufferedOutputStream(newFileOutputStream(dist),BUFFER_SIZE);

4:

上传文件可以自己用io流拷贝文件,还可以用FileUtils.copyFile(file1,file2);

5:

File的名字要和上传页面File域name属性的值一致如:

upload则FileUploadAction中的File的名字也应为upload(privateFileupload),除此之外还要添加以下两个属性:

privateStringuploadFileName对应于上传文件的名字

privateStringuploadContentType对应于上传文件的类型

以上两个属性的名字的命名必需以File的属性名开头,然后再加上FileName或ContentType如uploadFileName和uploadContentType

3:

jsp页面如下:

%@pagelanguage="

java"

contentType="

text/html;

charset=utf-8"

02.pageEncoding="

utf-8"

%>

03.<

DOCTYPEHTMLPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

04.<

html>

05.<

head>

metahttp-equiv="

Content-Type"

content="

07.<

title>

struts2单文件上传页面<

/title>

08.<

/head>

09.<

body>

10.<

formaction="

upload.action"

post"

enctype="

multipart/form-data"

11.标题:

inputtype="

text"

name="

title"

br>

12.请选选择:

File"

13.<

submit"

提交"

14.<

/form>

15.<

/body>

16.<

/html>

pageEncoding="

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1