java做上传文件用jquery发送请求怎么在action中接收<s:file>标签中的值

这是上传的工具类publicvoidupload(File[]uploads,String[]uploadContentType,String[]uploadFileNa... 这是上传的工具类
public void upload(File[] uploads,String[] uploadContentType,String[] uploadFileName,String savePath) throws IOException{
byte[] buffer=new byte[1024];
for (int i = 0; i < uploads.length; i++) {
System.out.println("这个是文件原始路径:"+uploads[i]);
FileInputStream fis=new FileInputStream(uploads[i]);
System.out.println("这个是文件保存路径"+savePath+"\\"+uploadFileName[i]);
String path = ServletActionContext.getServletContext().getRealPath(savePath);
FileOutputStream fos=new FileOutputStream(path +"\\"+uploadFileName[i]);
int length=fis.read(buffer);
while(length>0){
//每次写入length长度的内容
fos.write(buffer,0,length);
length=fis.read(buffer);
}
fis.close();
fos.flush();
fos.close();
}
}

这是请求的jquery
$('#save').submit(function() {
if(sub=="提交"){
$.ajax({
url:"archives_save",
type:"post",
data: $('#save').serialize(),
cache : false,//缓存
success: function(data){
alert(data);
$(".right").load("archives_show");
}
});
return false
}

这是jsp
<s:form id="save" enctype="multipart/form-data">
<div>简历附件</div>
<input type="file" name="uploads"/>
<div>
<input class="submits" type="submit" value="提交">
<input class="submits" type="submit" value="返回">
</div>
</s:form>
这是action
public String save() throws IOException{
uploadUtil.upload(uploads, uploadContentType, uploadFileName, savePath);
return "toShow";
}
展开
 我来答
解药没有毒
推荐于2016-12-01 · 超过26用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:32.9万
展开全部
data: $('#save').serialize(), 序列化不了流,只能直接提交。无刷新上传不是这样做的
追问
但是我还需要同时把所有数据都传到action中 你有什么好的方法吗
追答
直接思路吧。 用 iframe,你的form action是照样写,target是iframe 的name属性,这样,当你点击form上传的时候,就不会进行页面跳转了。上传的是你的action路径,但返回的内容会在iframe里面,这样就可以做到无刷新了。接着看你要做的什么,如果你要做图片预览,在服务器端返回的是一段javascript代码,它的作用是为一个img 的src赋值为你刚才保存的图片地址。如果出现了浏览器缓存问题在地址后面加请求参数,让浏览器强制刷新请求。当然,一般iframe是display:none的。至于使用jquery,无非也是动态生成iframe。你不需要用到struts标签,用普通标签也可以使用sturts2的上传组件
xqqlxm
2014-09-05 · TA获得超过338个赞
知道小有建树答主
回答量:533
采纳率:100%
帮助的人:233万
展开全部
接收值,你要看页面的源码,去获得控件的name值
追问
我在action中封装了这个private File[] uploads;属性 可是还是获取不到
我在action中封装了这个private File[] uploads;属性 可是还是获取不到
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式