测试环境
/*
xp+MyEclipse(SSI框架)+WebLogic 测试通过图片上传成功
代码如下:我把upload_json.jsp的代码移植到Action中
public String uploadJson() throws Exception {
String error = null;
String newImgName = null;
String saveUrl =null;
String savePath = null;
// SimpleDateFormat picfileType = new SimpleDateFormat("yyyyMM");
// String picfileName = picfileType.format(new Date());
saveUrl = path()+"/uploadfile/"+picpath;
savePath = path()+"/uploadfile/"+picpath;
HttpServletResponse res = ServletActionContext.getResponse();
res.setContentType("text/html; charset=UTF-8");
// 定义允许上传的文件扩展名
String[] fileTypes = new String[] { "gif", "jpg", "jpeg", "png", "bmp" };
// 允许最大上传文件大小
long maxSize = 2097152;
// Struts2 请求 包装过滤器
MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) request();
// 获得上传的文件名
String fileName = wrapper.getFileNames("imgFile")[0];
// 获得文件过滤器
File file = wrapper.getFiles("imgFile")[0];
// 得到上传文件的扩展名
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
// 重构上传图片的名称
if(error == null){
String s = UUID.randomUUID().toString();
s = s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
newImgName = "" + s + "." + fileExt;
// 检查目录
File uploadDir = new File(new File(savePath),newImgName);
if (!uploadDir.getParentFile().exists()) {
uploadDir.getParentFile().mkdirs();
}
if (!uploadDir.isDirectory()) {
res.getWriter().println (getError("上传目录不存在。"));
}
// 检查目录写入权限
if (!uploadDir.canWrite()) {
res.getWriter().println (getError("上传目录没有写入权限。"));
}
try {
FileUtils.copyFile(file, uploadDir);
} catch (Exception e) {
e.printStackTrace(System.err);
} finally {
}
}
File ff = new File(saveUrl);
String[] num = ff.getPath().split("\\\\");
obj.put("error", 0);
obj.put("url", "/"+num[num.length-3]+"/"+num[num.length-2]+"/"+num[num.length-1]+"/" + newImgName);
request().getSession().setAttribute("error", error);
System.out.println();
request().getSession().setAttribute("obj", obj);
res.getWriter().println(obj.toJSONString());
return SUCCESS;
}
*/
完成上传图片后跳转至upload_json.jsp
upload_json.jsp代码如下:
/*
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper"%>
<%@ page import="org.json.simple.*"%>
<%
JSONObject obj = (JSONObject)request.getSession().getAttribute("obj");
System.out.println(obj);
out.println(obj.toJSONString());
%>
*/
这样在测试环境下是可以行的通的。。图片也能正常显示
但是项目发布到Linux系统的服务器上 也是weblogic
图片上传成功,我在服务器上也找到了,但是会报一个:服务器错误。然后图片就不显示了。
求高手解救,已困扰我两天了,
我在网上找的资料说 返回的json数据格式不对。。。但是我测试已经通过了返回的json格式是对的。。。
我就搞不懂为什么会出现这种情况。