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

QQ登录

只需一步,快速开始

楼主: Masion

[分享] 利用imageCropper插件在X5平台上实现头像剪裁上传功能

  [复制链接]

0

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
QQ
发表于 2015-8-14 09:22:47 | 显示全部楼层
我试过代码,但是在wex5 V3.12版本里运行是正常的,但是升级到V3.2后,在手机端点击按钮,不能弹出选择框。按钮的代码是this.getElementByXid('inputImage').click(); 浏览器正常,就是手机不行
回复 支持 反对

使用道具 举报

51

主题

151

帖子

444

积分

中级会员

Rank: 3Rank: 3

积分
444
QQ
发表于 2015-8-21 17:07:38 | 显示全部楼层
Failed to load resource: the server responded with a status of 405 (Method Not Allowed) http://localhost:4400/baas/uploadImageAjax


后台的servlet怎么写的呢?上传时就提示上面的信息

我写的代码是
package com.justep.baas.uploadImageAjax;


import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import javax.naming.NamingException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;

import sun.misc.BASE64Decoder;
import com.alibaba.fastjson.JSONObject;
import com.justep.baas.data.Util;


public class UploadImageAjaxServlet extends HttpServlet {

/**
         *
         */
        private static final long serialVersionUID = 4942153269752607096L;

/**
         *
         */
    //存储前台传过来的图片
        public  void uploadImageAjax(ServletRequest request, ServletResponse response) throws ParseException, SQLException, NamingException, IOException {
       // 参数序列化
                      JSONObject params = (JSONObject) JSONObject.parse(request.getParameter("params"));
                       JSONObject jsonObj = new JSONObject();
                       String image = params.getString("image");        //拿到字符串格式的图片
                      String subPath=params.getString("subPath");
                       String PicName=params.getString("icName");
                       System.out.println(PicName);

                       // 只允许jpg
                       String header ="data:image/jpeg;base64,";

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

               }catch(Exception e){
                       success = "上传文件失败!|"+e.getMessage();
                       e.printStackTrace();
               }
               finally{
                       jsonObj.put("success", success);
      
                       Util.writeJsonToResponse(response, jsonObj);
               }
}
}



有什么不对的吗?
回复 支持 反对

使用道具 举报

6

主题

17

帖子

46

积分

新手上路

Rank: 1

积分
46
QQ
发表于 2015-8-22 11:10:35 | 显示全部楼层
楼主,我用咱们这个方法做成功了,可是打包的时候必须要用增强性浏览器才能成功,怎么处理用啊
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-8-24 10:56:23 | 显示全部楼层
zhj880404 发表于 2015-8-22 11:10
楼主,我用咱们这个方法做成功了,可是打包的时候必须要用增强性浏览器才能成功,怎么处理用啊 ...

安卓系统的浏览器各种定制化,千差万别
为了保证X5运行环境一致,
打安卓包时,建议选上增强型浏览器
也就是起步科技提供的内置的crosswalk浏览器
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-8-24 10:56:44 | 显示全部楼层
安卓系统的浏览器各种定制化,千差万别
为了保证X5运行环境一致,
打安卓包时,建议选上增强型浏览器
也就是起步科技提供的内置的crosswalk浏览器
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

51

主题

151

帖子

444

积分

中级会员

Rank: 3Rank: 3

积分
444
QQ
发表于 2015-8-24 17:05:13 | 显示全部楼层
楼主能把后台源码发一下吗
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-8-25 17:05:09 | 显示全部楼层
图片剪裁和后台传文件没有关系呀
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-8-25 17:06:26 | 显示全部楼层
想后台传文件,我是用这个帖子的代码传的,你可以做个参考
wex5的image标签怎么加载手机中的图片
http://bbs.wex5.com/forum.php?mod=viewthread&tid=73515
(出处: 起步软件技术论坛)
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

51

主题

151

帖子

444

积分

中级会员

Rank: 3Rank: 3

积分
444
QQ
发表于 2015-8-25 19:27:55 | 显示全部楼层
好的  我看看行不  
回复 支持 反对

使用道具 举报

18

主题

59

帖子

159

积分

初级会员

Rank: 2

积分
159
QQ
发表于 2015-9-28 07:13:30 | 显示全部楼层
可否传下 baas.js文件  代码复制总是提示少;号
baas后台的处理过程:

        //存储前台传过来的图片
private static void uploadImageAjax(ServletRequest request, ServletResponse response) throws ParseException, SQLException, NamingException, IOException {
         // 参数序列化
                         JSONObject params = (JSONObject) JSONObject.parse(request.getParameter("params"));
                         JSONObject jsonObj = new JSONObject();
                         String image = params.getString("image");        //拿到字符串格式的图片
                         String subPath=params.getString("subPath");
                         String PicName=params.getString("PicName");
                         System.out.println(PicName);

                        // 只允许jpg
                         String header ="data:image/jpeg;base64,";

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

                }catch(Exception e){
                         success = "上传文件失败!|"+e.getMessage();
                         e.printStackTrace();
                 }
                 finally{
                         jsonObj.put("success", success);
         
                        Util.writeJsonToResponse(response, jsonObj);
                 }
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 23:26 , Processed in 0.064538 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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