javascript-文件上传|没有页面刷新| struts2 |没有闪光灯
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-文件上传|没有页面刷新| struts2 |没有闪光灯,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3313字,纯文字阅读大概需要5分钟。
内容图文
![javascript-文件上传|没有页面刷新| struts2 |没有闪光灯](/upload/InfoBanner/zyjiaocheng/693/352005dfd42f47ada2784dd59aafde3d.jpg)
问题描述:我想使用JSP创建文件上传屏幕.屏幕将允许用户在屏幕上选择多个文件,但所有文件只有一个上载按钮.单击上载按钮后,应在Action类中获取所有文件对象.
但是重要的是页面提交后不应刷新.在同一屏幕上还将显示其他信息,在文件上传过程中不应更改这些信息.
我的尝试:我使用了简单的struts2文件上传功能,效果很好.但是它正在刷新提交页面.
我使用AJAX(JQuery)来解决此问题.我用AJAX面临的问题是它没有将File对象设置为Action类的file属性.因此,我无法在Action类中获取文件对象并进一步处理.
谁能帮我这个忙.
我将附加到目前为止我尝试过的所有代码.
JSP:
<s:form action="fileUpload" method="post" enctype="multipart/form-data" >
<s:file id="file" name="userImage" cssClass="fileUpload" cssStyle="fileUpload" />
<button id="px-submit">Upload</button>
</s:form>
<script type="text/javascript">
jQuery(function($){
$('.fileUpload').fileUploader();
});
</script>
jQuery插件:
This is the jquery plugin that I have used.
动作类:
public class FileUploadAction extends ActionSupport{
private File userImage;
public File getUserImage() {
return userImage;
}
public void setUserImage(File userImage) {
this.userImage = userImage;
}
public String execute()
{
try
{
System.out.println("file name: " + userImage.toString());
}
catch(Exception e)
{
e.printStackTrace();
}
return SUCCESS;
}
编辑:这是我的struts配置文件.
在struts.xml
<action name="commonDataImportAction_*" class="xxx.Action">
<result name="SUCCESS" type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
由于文件对象未设置,我在这里得到了一个空指针.
请帮忙.
提前致谢.
拉夫
解决方法:
我正在使用相同的插件,对我来说效果很好.我在您的代码中看到的第一个问题是您尚未设置要提交的上传按钮的类型.
<button id="px-submit" type="submit">Upload</button>
希望这应该解决null指针除外.
另外,如该插件的文档中所述,您需要返回一个json字符串
<div id='message'>success message</div>
成功上传.因此,您需要更改struts.xml映射.
尝试此操作,如果您遇到任何其他问题,请立即与我联系.
编辑:
好的,这是您要求的我的代码
JSP
<form action="uploadImage" method="post" enctype="multipart/form-data">
<input type="file" name="image" class="fileUpload" multiple/>
<button id="px-submit" type="submit">Save all images</button>
<button id="px-clear" type="reset">Clear all</button>
</form>
$('.fileUpload').fileUploader({
autoUpload: false,
buttonUpload: '#px-submit',
buttonClear: '#px-clear',
});
动作课
您需要返回流结果.我正在使用一个插件(struts2 jquery plugin),它可以很好地处理它,但是您不必仅因为这一要求而使用它,而是给您一个代码以返回流结果而不使用任何插件.(摘自here )
public class UploadImageAction extends ActionSupport{
private File image;
private String imageContentType;
private String imageFileName;
//getter/setter for these
public String execute() {
String status="";
try{
//save file code here
status="<div id='message'>successfully uploaded</div>"; //on success
inputStream = new StringBufferInputStream(status);
}catch(WhateverException e){
status="<div id='status'>fail</div><div id='message'>Your fail message</div>"; //on error
inputStream = new StringBufferInputStream(status);
//other code
}
return SUCCESS;
}
private InputStream inputStream;
public InputStream getInputStream() {
return inputStream;
}
}
在struts.xml
<action name="fileUpload" class="com.xxx.action.UploadImageAction">
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
内容总结
以上是互联网集市为您收集整理的javascript-文件上传|没有页面刷新| struts2 |没有闪光灯全部内容,希望文章能够帮你解决javascript-文件上传|没有页面刷新| struts2 |没有闪光灯所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。