lvgaolong 2015-01-26
<package name="struts_Ajax_code" extends="json-default"> <!-- 文件上传 --> <action name="fileAction" class="com.bk.eserver.web.action.AjaxFileUploadAction" method="fileUpload"> <result type="json" name="success"> <param name="contentType">text/html</param> </result> </action> </package>
注意结合Action观察struts.xml中result的配置。
contentType参数是一定要有的,否则浏览器总是提示将返回的JSON结果另存为文件,不会交给ajaxfileupload处理。这是因为struts2JSONPlugin默认的contentType为application/json,而ajaxfileupload则要求为text/html。
如果直接在Action中向客户端发送Json内容时需要:super.getResponse().setContentType("text/html; charset=utf-8"); //发送给客户端 super.getResponse().getWriter().print(json);
为了美观,把 type="file" 控件隐藏。点击“上传”按钮,click调用隐藏文件控件,再选择文件。查了一遍,好像是ie为了安全控制,文件的必须鼠标点击过后,才能提交。还没有想到其他的方法。。。
5,success 提交成功后自动执行的处理函数,参数data就是服务器返回的数据。6,error 提交失败自动执行的处理函数。7,data 自定义参数。fileElementId: 'file1',
-- 引入相关的js文件,相对路径 -->. -- 执行上传文件操作的函数 -->. method=uploader', //需要链接到服务器地址。fileElementId:'houseMaps',