主题: 请Java高手解救疑问
作者: yijiu10861, 发布日期: 2014-04-15 16:06:21, 浏览数: 1991

测试环境

/*

 

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格式是对的。。。

我就搞不懂为什么会出现这种情况。

发表新帖 发表回复