三:webwork.properties
webwork.multipart.parser = com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest
//指定文件上传到服务器中的一个临时目录
四:picNews.xwork.xml
<xwork>
<package name="picNews" namespace="/picNews" extends="jjyx-basic">
<interceptors>
<interceptor name="savePicNews" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor">
<param name="allowedTypes">image/jpeg/jpg/bmpparam>
<param name="maximumSize">10000000param>
interceptor>
<interceptor name="updatePicNews" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor">
<param name="allowedTypes">image/jpeg/jpg/bmpparam>
<param name="maximumSize">10000000param>
interceptor>
<interceptor-stack name="fileUploadStack">
<interceptor-ref name="upload"/>
<interceptor-ref name="defaultStack"/>
interceptor-stack>
<interceptor-stack name="loadStack">
<interceptor-ref name="upload"/>
<interceptor-ref name="defaultStack"/>
interceptor-stack>
interceptors>
<default-interceptor-ref name="fileUploadStack"/>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
<action name="savePicNews" class="savePicNewsAction">
<result name="300.201" type="redirect">/picNews/listPicNews.ms?siteId=${siteId}result>
<interceptor-ref name="params"/>
<!---->
<interceptor-ref name="basicStack"/>
<interceptor-ref name="fileUploadStack"/>
<interceptor-ref name="model-driven"/>
<!---->
action>
<action name="updatePicNews" class="updatePicNewsAction">
<result name="300.202"
type="redirect">/picNews/listPicNews.ms?siteId=${siteId}result>
<interceptor-ref name="params"/>
<interceptor-ref name="basicStack"/>
<interceptor-ref name="loadStack"/>
<interceptor-ref name="model-driven"/>
action>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
五:jsp部分
picArticleAdd.jsp
<body>
<form action="/picNews/savePicNews.ms? siteId=${siteId }"
method="post" enctype="multipart/form-data"
name="myform" onsubmit="return chkSubmit();">
// enctype="multipart/form-data"为文件上传必须的部分
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
<tr>
<td bgcolor="#F4F4F4" align="center"><p><strong>图片地址strong>p>td>
<td bgcolor="#F4F4F4" align="left"><input name="photoUrl" type="file" size="30" id="file1" onchange="test()">td>
tr>
<tr><td bgcolor="#F4F4F4" align="center"><strong>图片预览strong>td><td bgcolor="#F4F4F4" align="left">
<img id="showimg" width="${width }" height="${height}"/>td>
tr>
总结:
当程序进入到action中时,开始处理上面代码中的photoUrl,此时文件已上传到服务器中的一个临时目录(同时被注入到action中,就是你看到的photoUrl),此临时目录由webwork.properties指定,你必须将此文件拷贝到你需要的目录,否则action执行完毕,此文件会被删除,准确说是拦截器处理后删除了临时文件,这一段结论的前提是你使用拦截器处理上传
对于webwork.properties的一些处理,webwork in action上推荐使用webwork.multipart.parser=jakarta而不是默认的pell,如果使用前者,不要忘了在你的lib中加入commons-fileupload.jar
需要注意的问题:
在使用fileUpload拦截器的时候应该避免使用execAndWait拦截器,否则很有可能会出现空指针,因为execAndWait拦截器会在另一个线程处理action,而原来的线程会删掉临时文件,所以当你在action中处理文件的时候很有可能文件已被删掉,虽然这并非一定会出现,但毕竟不安全
相关推荐
软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记
网络工程师学习笔记网络工程师学习笔网络工程师学习笔记记
2019软考网络工程师笔记+实验汇总2019软考网络工程师-基础部分笔记归纳
VSCode项目工程调试debug 教程 笔记 VSCode项目工程调试debug 教程 笔记 VSCode项目工程调试debug 教程 笔记 VSCode项目工程调试debug 教程 笔记VSCode项目工程调试debug 教程 笔记VSCode项目工程调试debug 教程 ...
电气设备 发电厂电气期末试题及复习笔记 南京工程学院 电力工程学院
有道云笔记图片旋转和保存技巧 在有道云笔记中旋转和保存图片是许多用户经常遇到的问题。今天,我们将探讨如何在有道云笔记中旋转和保存图片。 首先,让我们了解为什么需要旋转和保存图片。在编辑有道云笔记时,...
丁士昭 《工程项目管理笔》的笔记
网络工程师笔记串讲主要知识点 可以帮你节省时间学好网络方面的知识
通信工程学笔记
软件工程复习笔记考研复习笔记,特别适合本科生及研究生复习
上软件工程课记录的学习笔记 (全章节)
网络工程师中级复习笔记记住这些好好复习 大部分都能考过
达内部分笔记,初学者可以对照学习开发,一切都是免费的,后期在发布一些相应的资源!
网络工程师笔记是你考前的好工具!记住网络工程师笔记,网络工程师笔记,网络工程师笔记
笔记需要下载<印象笔记>软件,然后导入笔记即可,我是macbook,所以Windows系统有点点排版问题,但是不影响检索内容。 笔记详情可见:https://blog.csdn.net/sunniezhu1995/article/details/70238721 该笔记出自...
大学软件工程课自己整理的笔记,可供上软件工程课时参考、课后复试使用。
自学考试计算机及应用专业课程《软件工程》考前笔记
软件工程笔记(完整版).pdf软件工程笔记(完整版).pdf软件工程笔记(完整版).pdf软件工程笔记(完整版).pdf软件工程笔记(完整版).pdf软件工程笔记(完整版).pdf
网络工程 学习笔记 适合看过一遍书的人`
考研通信工程读书笔记内部资料考研通信工程读书笔记内部资料