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

QQ登录

只需一步,快速开始

查看: 1771|回复: 3

[处理中3] 用 baas 实现图片上传

[复制链接]

265

主题

614

帖子

1171

积分

金牌会员

Rank: 6Rank: 6

积分
1171
QQ
发表于 2017-12-11 16:11:51 | 显示全部楼层 |阅读模式
wex5 开发工具有 attachmentSimple 来实现图片上传,这个非常方便。但由于我的需求是想根据需要动态创建图片上传,而 attachmentSimple 并不能动态创建。wex5 中有图片上传的 baas :
  1.         public static JSONObject uploadImageAjax(JSONObject params, ActionContext context) throws SQLException, NamingException {
  2.                 // 参数序列化

  3.                 JSONObject jsonObj = new JSONObject();
  4.                 String image = params.getString("image"); // 拿到字符串格式的图片
  5.                 String PicName = params.getString("PicName");

  6.                 // 去掉头部
  7.                 image = image.split(",")[1];
  8.                 // 写入磁盘
  9.                 String success = "fail";
  10.                 BASE64Decoder decoder = new BASE64Decoder();
  11.                 try {
  12.                         byte[] decodedBytes = decoder.decodeBuffer(image); // 将字符串格式的image转为二进制流(biye[])的decodedBytes
  13.                         String imgFilePath = docStorePath + PicName; // 指定图片要存放的位置
  14.                         FileOutputStream out = new FileOutputStream(imgFilePath); // 新建一个文件输出器,并为它指定输出位置imgFilePath
  15.                         out.write(decodedBytes); // 利用文件输出器将二进制格式decodedBytes输出
  16.                         out.close(); // 关闭文件输出器
  17.                         success = "上传文件成功!";
  18.                         System.out.println("上传文件成功!");

  19.                 } catch (Exception e) {
  20.                         success = "上传文件失败!|" + e.getMessage();
  21.                         e.printStackTrace();
  22.                 } finally {
  23.                         jsonObj.put("success", success);
  24.                 }
  25.                 return jsonObj;
  26.         }
复制代码

后台代码是挺清晰易懂的。只是我有一个疑问:

a.png

在这个代码中,图片是通过二进制字符串传进来的。在前端 .w 文件中,又如何把相机拍摄的、或手机本机文件作为字符串传入进来呢?
发表于 2017-12-11 16:30:59 | 显示全部楼层
你不是参考的这个吧
/Baas/justep/SimpleFileStore.java

并没有 params.getString("image") 的代码!
这个获取的是字符串!根本就不是二进制!  除非你前端传的是一个base64 的字符串!才可以这样!

如果是二进制!应该是从request 对象里读出来的才对!
关于上传的几种做法可以参考
http://docs.wex5.com/wex5-app-question-list-2092
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

265

主题

614

帖子

1171

积分

金牌会员

Rank: 6Rank: 6

积分
1171
QQ
 楼主| 发表于 2017-12-12 02:09:10 | 显示全部楼层
我参考的代码是:
http://docs.wex5.com/wex5-app-question-list-2092/
中提到的:
/Baas/justep/Lawrance.java

回复 支持 反对

使用道具 举报

发表于 2017-12-12 10:08:52 | 显示全部楼层
yczxqy 发表于 2017-12-12 02:09
我参考的代码是:
http://docs.wex5.com/wex5-app-question-list-2092/
中提到的:

如果你后台参考这个代码!前台就应该参考/UI2/demo/picCut/mainActivity.w   
这是对应的
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 09:43 , Processed in 0.063781 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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