起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3215|回复: 6

[处理中3] 图片多选显示成功,上传失败???

[复制链接]

34

主题

93

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
发表于 2017-12-2 02:20:34 | 显示全部楼层 |阅读模式

根据这个帖子http://bbs.wex5.com/forum.php?mod=viewthread&tid=115169测试,选择相册,或者拍照,都没问题,但是上传失败的。
后端Java模型编译 错误如下:
  1. 开始编译BAAS Service Java......
  2. log4j:WARN No appenders could be found for logger (com.justep.baas.BaasException).
  3. log4j:WARN Please initialize the log4j system properly.
  4. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
  5. com.justep.baas.compiler.CompileException: 编译模块Java出错
  6. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:9: 错误: 程序包common不存在
  7. import common.DBHelper;
  8.              ^
  9. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:66: 错误: 找不到符号
  10.         public static JSONObject uploadImageAjax(JSONObject params, ActionContext context) throws SQLException, NamingException {
  11.                                                                                                   ^
  12.   符号:   类 SQLException
  13.   位置: 类 IncidentService
  14. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:66: 错误: 找不到符号
  15.         public static JSONObject uploadImageAjax(JSONObject params, ActionContext context) throws SQLException, NamingException {
  16.                                                                                                                 ^
  17.   符号:   类 NamingException
  18.   位置: 类 IncidentService
  19. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:53: 错误: 找不到符号
  20.                 DBHelper.execUpdate(sql, sqlParams.toArray());
  21.                 ^
  22.   符号:   变量 DBHelper
  23.   位置: 类 IncidentService
  24. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:56: 错误: 找不到符号
  25.                 DBHelper.execUpdate(sql2, id);
  26.                 ^
  27.   符号:   变量 DBHelper
  28.   位置: 类 IncidentService
  29. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:71: 错误: 找不到符号
  30.                 String docStorePath = UPLOAD_ROOT_DIR + UPLOAD_FOLDER + File.separator + ownerID + File.separator;
  31.                                                                         ^
  32.   符号:   变量 File
  33.   位置: 类 IncidentService
  34. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:71: 错误: 找不到符号
  35.                 String docStorePath = UPLOAD_ROOT_DIR + UPLOAD_FOLDER + File.separator + ownerID + File.separator;
  36.                                                                                                    ^
  37.   符号:   变量 File
  38.   位置: 类 IncidentService
  39. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:74: 错误: 找不到符号
  40.                 BASE64Decoder decoder = new BASE64Decoder();
  41.                 ^
  42.   符号:   类 BASE64Decoder
  43.   位置: 类 IncidentService
  44. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:74: 错误: 找不到符号
  45.                 BASE64Decoder decoder = new BASE64Decoder();
  46.                                             ^
  47.   符号:   类 BASE64Decoder
  48.   位置: 类 IncidentService
  49. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:76: 错误: 找不到符号
  50.                         File imageFile = new File(imgFilePath);
  51.                         ^
  52.   符号:   类 File
  53.   位置: 类 IncidentService
  54. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:76: 错误: 找不到符号
  55.                         File imageFile = new File(imgFilePath);
  56.                                              ^
  57.   符号:   类 File
  58.   位置: 类 IncidentService
  59. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:82: 错误: 找不到符号
  60.                         FileOutputStream out = new FileOutputStream(imgFilePath); // 新建一个文件输出器,并为它指定输出位置imgFilePath
  61.                         ^
  62.   符号:   类 FileOutputStream
  63.   位置: 类 IncidentService
  64. J:\WeX5\runtime\BaasServer\baas\imgduoxuanshangchuan\IncidentService.java:82: 错误: 找不到符号
  65.                         FileOutputStream out = new FileOutputStream(imgFilePath); // 新建一个文件输出器,并为它指定输出位置imgFilePath
  66.                                                    ^
  67.   符号:   类 FileOutputStream
  68.   位置: 类 IncidentService
  69. 13 个错误

  70.         at com.justep.baas.compiler.java.JavaCompiler.compile(Unknown Source)
  71.         at com.justep.baas.compiler.java.Compiler.compileJavaDir(Unknown Source)
  72.         at com.justep.baas.compiler.java.Compiler.compileJavaDir(Unknown Source)
  73.         at com.justep.baas.compiler.java.Compiler.compileJavaDir(Unknown Source)
  74.         at com.justep.baas.compiler.java.Compiler.compileJavaCode(Unknown Source)
  75.         at com.justep.baas.compiler.java.Compiler.compile2jar(Unknown Source)
  76.         at com.justep.baas.compiler.java.Compiler.compile2jar(Unknown Source)
  77.         at com.justep.baas.compiler.java.Compiler.compile(Unknown Source)
  78.         at com.justep.baas.compiler.CompilerFactory.main(Unknown Source)
复制代码




34

主题

93

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2017-12-2 02:21:16 | 显示全部楼层
java代码如下
  1. package nkyz;

  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;

  5. import org.apache.commons.lang.StringUtils;

  6. import com.alibaba.fastjson.JSONArray;
  7. import com.alibaba.fastjson.JSONObject;
  8. import com.justep.baas.action.ActionContext;
  9. import common.DBHelper;

  10. public class IncidentService {
  11.        
  12.         //上传文件根路径,注意是本地文件路径,一般定位到tomcat的webapps文件夹。需要配置[数据库中配置会覆盖此处默认配置]
  13.         public static String UPLOAD_ROOT_DIR = "J:\\webapps\";//注意以\\结尾
  14.         public static String UPLOAD_FOLDER = "uploads";//本地文件夹名:上传文件存放的文件夹名
  15.         public static String UPLOAD_SERVER = "";//上传服务器地址:IP及端口,前台展示图片会用到
  16.         /**
  17.          * 保存事件处理
  18.          */
  19.         public static JSONObject saveIncidentDeal(JSONObject params, ActionContext context) throws Exception {
  20.                 JSONObject result = new JSONObject();
  21.                 result.put("ok", false);
  22.                 Object id = params.get("id");
  23.                 if(id == null){
  24.                         result.put("errorMsg", "事件ID不能为空!");
  25.                         return result;
  26.                 }
  27.                 //上传图片
  28.                 String imageUrls = null;
  29.                 JSONArray imageUrlsArr = params.getJSONArray("imageUrlsArr");
  30.                 if(imageUrlsArr!=null && imageUrlsArr.size()>0){
  31.                         List<String> imageSrcArr = new ArrayList<String>();
  32.                         for(int i=0; i<imageUrlsArr.size(); i++){
  33.                                 JSONObject img = imageUrlsArr.getJSONObject(i);
  34.                                 JSONObject rtn = uploadImageAjax(img, context);
  35.                                 if(!rtn.getBooleanValue("ok")){
  36.                                         return rtn;
  37.                                 }else{
  38.                                         String imageSrc = rtn.getString("imageSrc");
  39.                                         imageSrcArr.add(imageSrc);
  40.                                 }
  41.                         }
  42.                         imageUrls = StringUtils.join(imageSrcArr, ",");
  43.                 }
  44.                 //插入事件处理
  45.                 String sql = "INSERT INTO incident_deal (incidentId, description, imageUrls, createTime, creator) " +
  46.                                 " VALUES (?, ?, ?, now(), ?);";
  47.                 List<Object> sqlParams = new ArrayList<Object>();
  48.                 sqlParams.add(id);
  49.                 sqlParams.add(params.get("description"));
  50.                 sqlParams.add(imageUrls);
  51.                 sqlParams.add(params.get("username"));
  52.                 DBHelper.execUpdate(sql, sqlParams.toArray());
  53.                 //更改事件状态为已处理
  54.                 String sql2 = "update incident set state = 4, chuliTime = now() where id = ? ";
  55.                 DBHelper.execUpdate(sql2, id);
  56.                
  57.                 result.put("ok", true);
  58.                 return result;
  59.         }
  60.        
  61.        
  62.         /**
  63.          * 裁剪后通过AJAX上传图片
  64.          */
  65.         public static JSONObject uploadImageAjax(JSONObject params, ActionContext context) throws SQLException, NamingException {
  66.                 JSONObject result = new JSONObject();
  67.                 String imageData = params.getString("imageData"); // 拿到字符串格式的图片
  68.                 String imageName = params.getString("imageName");
  69.                 String ownerID = params.getString("ownerID");
  70.                 String docStorePath = UPLOAD_ROOT_DIR + UPLOAD_FOLDER + File.separator + ownerID + File.separator;
  71.                 String imgFilePath = docStorePath + imageName; // 指定图片要存放的位置
  72.                 imageData = imageData.split(",")[1];// 去掉头部
  73.                 BASE64Decoder decoder = new BASE64Decoder();
  74.                 try {
  75.                         File imageFile = new File(imgFilePath);
  76.                         //判断目标文件所在的目录是否存在  
  77.                         if(!imageFile.getParentFile().exists()) {  
  78.                                 imageFile.getParentFile().mkdirs();
  79.                         }
  80.                         byte[] decodedBytes = decoder.decodeBuffer(imageData); // 将字符串格式的image转为二进制流(biye[])的decodedBytes
  81.                         FileOutputStream out = new FileOutputStream(imgFilePath); // 新建一个文件输出器,并为它指定输出位置imgFilePath
  82.                         out.write(decodedBytes); // 利用文件输出器将二进制格式decodedBytes输出
  83.                         out.close(); // 关闭文件输出器
  84.                         String imageSrc = "/" + UPLOAD_FOLDER + "/" + ownerID + "/" + imageName;//该路径保存在数据库中,前台展示用
  85.                         result.put("ok", true);
  86.                         result.put("imageSrc", imageSrc);
  87.                         return result;
  88.                 } catch (Exception e) {
  89.                         e.printStackTrace();
  90.                         result.put("ok", false);
  91.                         result.put("errorMsg", "上传文件失败!" + e.getMessage());
  92.                         return result;
  93.                 }
  94.                
  95.         }
  96. }
复制代码



回复 支持 反对

使用道具 举报

发表于 2017-12-4 13:36:58 | 显示全部楼层
baas里面修改完后, 模型编译必须正确才行的!!
如果有一个有错的地方,编译就会报错的!  baas默认是设置为源码路径的,源码路径中没有错误提示吗??有的话先改正好!

另外排除法找下原因是那儿的action 定义出错了!  找出原因修改好
先保证编译是正确的
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

15

主题

62

帖子

112

积分

初级会员

Rank: 2

积分
112
QQ
发表于 2017-12-5 16:21:43 | 显示全部楼层
我想知道 common.DBHelper 这个在哪,我没找到
回复 支持 反对

使用道具 举报

34

主题

93

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2017-12-5 16:37:02 | 显示全部楼层
893333763 发表于 2017-12-5 16:21
我想知道 common.DBHelper 这个在哪,我没找到

确实没有这个......
回复 支持 反对

使用道具 举报

15

主题

62

帖子

112

积分

初级会员

Rank: 2

积分
112
QQ
发表于 2017-12-5 17:24:49 | 显示全部楼层
jkewajj 发表于 2017-12-5 16:37
确实没有这个......

同是天涯沦落人 23333...卡在这里了
回复 支持 反对

使用道具 举报

发表于 2017-12-6 10:10:47 | 显示全部楼层
本帖最后由 liangyongfei 于 2017-12-6 10:14 编辑
jkewajj 发表于 2017-12-5 16:37
确实没有这个......

这个工具类应该是用户自己封装的!,我看官方是并没有提供这个文件的!
自己封装一下吧!就是一个sql语句的jdbc操作!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-28 18:52 , Processed in 0.056374 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表