论坛首页 入门技术论坛

Struts/JSP可上传、预览服务器端文件(图片、文件、Flash、多媒体)文件组件

浏览 16881 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-07-07   最后修改:2010-07-16



 

 



 

 

 

 

 

配置方法

第一步:需要将jar包引入项目中

目前是1.0版 :filemanager1.0.jar

 

第二步:需要在web.xml文件配置一个参数

参数的作用:表示网站的资源根目录(上传、预览的根目录)

当前这个目录下可以建立任意的子目录

<context-param> <param-name>upFilePath</param-name> <param-value>/resource</param-value> </context-param>


 

 

 

需要注意的:这个参数名必须为upFilePath

 

第三步:配置Struts.xml文下:如下

 

<struts> <constant name="struts.devMode" value="false" /> <constant name="struts.custom.i18n.resources" value="globalMessages"/> <constant name="struts.i18n.encoding" value="GBK"></constant> <package name="filemanager" namespace="/" extends="struts-default"> <action name="fileManager" class="com.wjt276.filemanager.actions.FileManagerAction"> <result name="index">/filemanager/index.jsp</result> <result name="load_top">/filemanager/top.jsp</result> <result name="folder_list">/filemanager/folderlist.jsp</result> <result name="file_list_largeicon">/filemanager/filelist_largeicon.jsp</result> <result name="file_list_details">/filemanager/filelist_details.jsp</result> </action> <action name="fileUpload" class="com.wjt276.filemanager.actions.FileUploadAction"> <interceptor-ref name="fileUpload"> <param name="maximumSize">102400</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <exception-mapping result="input" exception="java.lang.Exception"></exception-mapping> <result name="success">/filemanager/success.jsp</result> <result name="input">/filemanager/input.jsp</result> </action> </package> </struts>

 

 

 

 

 

 

第四步:建立国际化资源文件

 

globalMessages.properties

 

 

#更改上传文件太大的提示信息 struts.messages.error.file.too.large=文件上传失败,需要上传的文件太大,限制大小 为1M #文件上传的其它错误信息 struts.messages.error.uploading=文件上传失败,发生内部错误,请稍后再试。

 

 

 

 

第五步:将filemanager文件夹复制到项目的根目录

 

 

 

第六步:开始使用,代码如下:

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script language="javascript"> /** * 打开对话框,从服务器上选择图片 */ function selectProductPic(){ var type = document.getElementById("type").value; if (type == null || type == "") { type = "Image"; } var url = "fileManager?type=" + type; //alert(url); var str = window.showModalDialog(url,"","dialogWidth=800px;dialogHeight=530px;center=yes;help=no;status=0"); if (str != null) { document.getElementById("filename").innerHTML = "文件名:" + str.fileName + "<br/>" + "文件夹:" + str.folderPath + "<br/>" + "完整路径:" + str.filePath ; //document.getElementById("img1").src=str.path; //document.getElementById("image").value=str.path; } } </script> </head> <body> <select name="type" id="type"> <option value="File">文件</option> <option value="Image">图片</option> <option value="Flash">Flash</option> <option value="Media">Media</option> </select> <input type="button" value="选择" title="选择" onclick="javascript:selectProductPic()"/> <div id="filename"></div> </body> </html>



 

 

 

 

  • 大小: 246.4 KB
  • 大小: 123.1 KB
  • 大小: 52 KB
  • 大小: 2.5 MB
   发表时间:2010-07-07  
如果加上进度条,可能更人性化!
0 请登录后投票
   发表时间:2010-07-08  
弱弱的问一句,预览flash 是否写了控件?
0 请登录后投票
   发表时间:2010-07-08  
看看。可惜是com打头的包名。。
0 请登录后投票
   发表时间:2010-07-08  
不知道安全性,怎么样
0 请登录后投票
   发表时间:2010-07-08  
shengye49 写道
看看。可惜是com打头的包名。。


朋友com打头的包有什么不好吗?谢谢
0 请登录后投票
   发表时间:2010-07-09  
为爱Debug 写道
弱弱的问一句,预览flash 是否写了控件?

对不起,我还没有试Flash文件。我的项目中现在只用到图片了,所以……
0 请登录后投票
   发表时间:2010-07-09  
和CKEditor的filemanager类似啊
0 请登录后投票
   发表时间:2010-07-09  
p2bl 写道
和CKEditor的filemanager类似啊

是的,就是它。抽出来了。
0 请登录后投票
   发表时间:2010-07-09   最后修改:2010-07-09
请教一下,我按照LZ所写的步骤添加工程,选择“图片”点“选择”按钮的时候会报如下错误:
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
 at com.wjt276.filemanager.actions.FileManagerAction.<clinit>(FileManagerAction.java:29)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 at java.lang.Class.newInstance0(Class.java:355)
 at java.lang.Class.newInstance(Class.java:308)
 at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:123)
 at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:154)
 at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:143)
 at com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:113)
 at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:275)
 at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:365)
 at com.opensymphony.xwork2.DefaultActionInvocation.access$000(DefaultActionInvocation.java:38)
 at com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:83)
 at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
 at com.opensymphony.xwork2.DefaultActionInvocation.<init>(DefaultActionInvocation.java:74)
 at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
 at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Thread.java:619)
是和我引用的jar包有关系吗,我的Java Build Path如下:
commons-logging-1.0.4.jar
filemanager1.0.jar
freemarker-2.3.8.jar
mysql-connector-5.0.jar
ognl-2.6.11.jar
struts2-core-2.0.12.jar
xwork-2.0.6.jar
jdk1.6
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics