jsp中使用jquery的ajaxfileupload插件怎么实现异步上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp中使用jquery的ajaxfileupload插件怎么实现异步上传相关的知识,希望对你有一定的参考价值。

参考技术A JSP页面中引入的script代码
<script>
function
ajaxFileUpload()

$("#loading").ajaxStart(function()
$(this).show();
)//开始上传文件时显示一个图片
.ajaxComplete(function()
$(this).hide();
);//文件上传完成将图片隐藏起来
$.ajaxFileUpload(
url:'AjaxImageUploadAction.action',//用于文件上传的服务器端请求地址
secureuri:false,//一般设置为false
fileElementId:'imgfile',//文件上传空间的id属性
<input
type="file"
id="imgfile"
name="file"
/>
dataType:
'json',//返回值类型
一般设置为json
success:
function
(data,
status)
//服务器成功响应处理函数

alert(data.message);//从服务器返回的json中取出message中的数据,其中message为在struts2中定义的成员变量
if(typeof(data.error)
!=
'undefined')

if(data.error
!=
'')

alert(data.error);
else

alert(data.message);


,
error:
function
(data,
status,
e)//服务器响应失败处理函数

alert(e);


)
return
false;

</script>
struts.xml配置文件中的配置方法:
<struts>
<package
name="struts2"
extends="json-default">
<action
name="AjaxImageUploadAction"
class="com.test.action.ImageUploadAction">
<result
type="json"
name="success">
<param
name="contentType">text/html</param>
</result>
<result
type="json"
name="error">
<param
name="contentType">text/html</param>
</result>
</action>
</package>
</struts>
上传处理的Action
ImageUploadAction.action
package
com.test.action;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.util.Arrays;
import
org.apache.struts2.ServletActionContext;
import
com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public
class
ImageUploadAction
extends
ActionSupport

private
File
imgfile;
private
String
imgfileFileName;
private
String
imgfileFileContentType;
private
String
message
=
"你已成功上传文件";
public
File
getImgfile()

return
imgfile;

public
void
setImgfile(File
imgfile)

this.imgfile
=
imgfile;

public
String
getImgfileFileName()

return
imgfileFileName;

public
void
setImgfileFileName(String
imgfileFileName)

this.imgfileFileName
=
imgfileFileName;

public
String
getImgfileFileContentType()

return
imgfileFileContentType;

public
void
setImgfileFileContentType(String
imgfileFileContentType)

this.imgfileFileContentType
=
imgfileFileContentType;

public
String
getMessage()

return
message;

public
void
setMessage(String
message)

this.message
=
message;

@SuppressWarnings("deprecation")
public
String
execute()
throws
Exception

String
path
=
ServletActionContext.getRequest().getRealPath("/upload/mri_img_upload");
String[]
imgTypes
=
new
String[]

"gif",
"jpg",
"jpeg",
"png","bmp"
;
try

File
f
=
this.getImgfile();
String
fileExt
=
this.getImgfileFileName().substring(this.getImgfileFileName().lastIndexOf(".")
+
1).toLowerCase();
/*
if(this.getImgfileFileName().endsWith(".exe"))
message="上传的文件格式不允许!!!";
return
ERROR;
*/
/**
*
检测上传文件的扩展名是否合法
*
*/
if
(!Arrays.<String>
asList(imgTypes).contains(fileExt))

message="只能上传
gif,jpg,jpeg,png,bmp等格式的文件!";
return
ERROR;

FileInputStream
inputStream
=
new
FileInputStream(f);
FileOutputStream
outputStream
=
new
FileOutputStream(path
+
"/"+
this.getImgfileFileName());
byte[]
buf
=
new
byte[1024];
int
length
=
0;
while
((length
=
inputStream.read(buf))
!=
-1)

outputStream.write(buf,
0,
length);

inputStream.close();
outputStream.flush();

catch
(Exception
e)

e.printStackTrace();
message
=
"文件上传失败了!!!!";

return
SUCCESS;


转载,仅供参考。

jQuery 获取jsp页面中用iframe引入的jsp页面中的值

<iframe scrolling="no" src="<c:url value=‘/unitBaseperson/view.do?para=9&op=send&type=xls‘/>"  id="main" frameborder="0" width="400"></iframe>    <!--在a.jsp页面中-->

假如我的jsp页面包含这样一个frame,这个frame引入的jsp中包含如下一个input框

<input id="uploadPara" name="uploadPara" type="hidden" value="" />        <!--在b.jsp页面中-->

父页面叫a.jsp ,iframe引入的这个页面叫b.jsp

要在a.jsp页面中获取b.jsp页面中id=uploadPara输入框的值,有如下做法:

1.对ie有效,对谷歌和火狐无效 

$(window.frames["main"].document).find("#uploadPara").val();

2.对ie,火狐,谷歌都有效

$("iframe").contents().find("#uploadPara").val();

 

以上是关于jsp中使用jquery的ajaxfileupload插件怎么实现异步上传的主要内容,如果未能解决你的问题,请参考以下文章

如何在jsp中使用ajax制作jquery自动完成ui

jsp页面中,如何使用jquery拼接json格式的数据

jsp页面中,如何使用jquery拼接json格式的数据

jsp中使用jquery的ajaxfileupload插件怎么实现异步上传

SpringMVC框架下实现JSON(类方法中回传数据到jsp页面,使用jQuery方法回传)

jquery 中用jsp 读取 modelmap