|

楼主 |
发表于 2017-8-10 13:59:05
|
显示全部楼层
前辈,现在跨域问题也解决了,但现在在手机上测试时出现了问题,问题描述如下:整个文件上传功能通过组件+后台逻辑实现,即app端使用attachmentSimple组件,通过将:
this.comp("attachmentSimple2").actionUrl = URL;
this.comp("attachmentSimple2").uploader.actionUrl = URL; 中URL指向远程服务器后台Servlet实现点击上传按钮时的文件上传逻辑,后台Servlet代码如下:
如图,后台是根据/Baas/justep/SimpleFileStore.java文件修改的,关键修改点:
1、修改了Servlet创建方式为extends HttpServlet,因为源文件中没有明确的Servlet创建方式,访问后台时无法默认访问service方法;
2、由于需要覆盖service方法,将源文件中public static JSONObject service(JSONObject params, ActionContext context) throws ServletException, IOException { HttpServletRequest request = (HttpServletRequest)context.get(ActionContext.REQUEST); HttpServletResponse response = (HttpServletResponse)context.get(ActionContext.RESPONSE); if(request.getMethod().equals("GET")){ doGet(request, response); }else if(request.getMethod().equals("POST")){ doPost(request, response); } return null; }
方法修改为:
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {System.out.println("调用了48行 service方法");
if(request.getMethod().equals("GET")){
doGet(request, response);
}else if(request.getMethod().equals("POST")){
doPost(request, response);
}
doPost(request, response);
} 后果:PC端测试文件上传一切正常;
但手机端选择文件后,日志文件输出“调用了48行service方法”后,无法继续执行;即无法向下执行doGet方法和doPost方法以完成文件上传和回显逻辑。
现怀疑是因为修改了源文件中request和response获取方式,导致手机端request请求中携带参数丢失。
请问应该如何解决?或者说,该如何修改源代码,以完成手机端文件上传?
PS:源代码中:
public static JSONObject service(JSONObject params, ActionContext context)
需要导入com.justep.baas.action.ActionContext的jar包,但我无法找到该jar包。
|
|