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

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: WangW

[结贴] 拍照控件

[复制链接]

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
发表于 2016-12-22 18:40:59 | 显示全部楼层
WangW 发表于 2016-12-22 17:29
ajax上传的base64码  然后服务器接受,想用控件的上传 但不知道怎么才能做出预览的效果,就先凑合用了 ...

这是我使用的上传方式,但是后台解析不了;楼主你看是什么原因呢
QQ截图20161222183718.png
QQ截图20161222183740.png
$_F3R]MQ~1`3CF2]G){@ITR.png
回复 支持 反对

使用道具 举报

11

主题

53

帖子

127

积分

初级会员

Rank: 2

积分
127
QQ
 楼主| 发表于 2016-12-22 18:41:25 | 显示全部楼层
waterrain 发表于 2016-12-22 17:34
哪能分享下上传的代码吗?我用的getJson方式提交给服务器的,ajax的方式从后台获取数据的时候还能用,不 ...

后台:
package com.grid.util;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.common.CommonFilePath;

import sun.misc.BASE64Decoder;

/**
* 上传图片。
*/
public class UploadImageAjax extends HttpServlet {
        boolean success = false;
        String savePath = "";
        private static final long serialVersionUID = 1L;

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)

        throws ServletException, IOException {
                String loadpath = null;
                String name = null;
                String imgpath = "";
                String image = req.getParameter("image");
                String userid = req.getParameter("userid");
                // String userid = "22";

                // 只允许jpg

                String header = "data:image/jpeg;base64,";

                if (image.indexOf(header) != 0) {

                        // ResponseUtils.renderJson(resp, savePath);

                        return;

                }
                image = image.substring(header.length());

                BASE64Decoder decoder = new BASE64Decoder();
                try {
                        byte[] decodedBytes = decoder.decodeBuffer(image);

                        // request.getSession().getServletContext().getRealPath("/");
                        loadpath = CommonFilePath.getInstance().findServerPath();

                        SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMdd");
                        String spath = df1.format(new Date());
                        loadpath = loadpath + "upload\\" + StringUtil.parseInt(userid, 0)
                                        + "\\" + spath;

                        System.out.println(loadpath);
                        name = (new Date()).getTime() + ".jpg";
                        File outfile = new File(loadpath);

                        // 如果文件不存在,则创建一个新文件
                        if (!outfile.exists()) {
                                outfile.mkdirs();
                        }
                        imgpath = "/upload/"
                                        + StringUtil.parseInt(req.getParameter("userid"), 0) + "/"
                                        + spath;
                        FileOutputStream out = new FileOutputStream(loadpath + "/" + name);
                        out.write(decodedBytes);
                        out.close();
                        success = true;
                } catch (Exception e) {
                        success = false;
                        e.printStackTrace();
                }
                resp.setContentType("application/json;charset=UTF-8");
                resp.setHeader("Pragma", "No-cache");
                resp.setHeader("Cache-Control", "no-cache");
                resp.setHeader("Access-Control-Allow-Origin", "*");
                resp.setDateHeader("Expires", 0);
                resp.getWriter().write(imgpath + "/" + name + "|" + name);

        }

}
前台:
function callCamera() {

                function onSuccess(imageData) {
                        // alert(imageData);
                        showResultLine(imageData);

                }
                function onFail(message) {
                        alert("失败:" + message);
                }
                navigator.camera.getPicture(onSuccess, onFail, {
                        // destinationType : 1,//获取地址
                        destinationType : navigator.camera.DestinationType.DATA_URL,// 获取base64
                        quality : 100,
                        targetWidth : 1500,
                        targetHeight : 1500,
                        saveToPhotoAlbum : true
                });
        }
        function uploadImage(img, id) {
                //alert(img);
                if (img == '') {
                        //alert(img);
                        return;
                }

                $.ajax({
                        type : 'POST',
                        url : main_url + '/ajax/uploadimage',
                        data : {
                                image : img,
                                userid : id
                        },
                        async : false,
                        dataType : 'text',
                        success : function(data) {
                                imgpaths += data + "#";
                                // alert(data);
                        },
                        error : function(err) {

                                alert('网络故障');
                                console.log(err);
                        }
                });

        }
回复 支持 反对

使用道具 举报

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
发表于 2016-12-22 18:49:04 | 显示全部楼层
WangW 发表于 2016-12-22 18:41
后台:
package com.grid.util;

好的我试试,加个好友吧;共同进步;qq:2604186978;验证马帅
回复 支持 反对

使用道具 举报

75

主题

356

帖子

502

积分

高级会员

Rank: 4

积分
502
QQ
发表于 2016-12-22 19:03:44 | 显示全部楼层
本帖最后由 waterrain 于 2016-12-22 19:06 编辑
WangW 发表于 2016-12-22 18:41
后台:
package com.grid.util;

楼主,你是点击拍照后调用的callCamera吗;在成功的函数里是展示图片操作吗?后面的函数uploadImage是在页面的上传图片事件中调用的吗?这里的参数img是刚出拍照的路径吗?(是一张图片的还是可以几张共用)我看你没有使用跨域,是因为你没有跨域吗?我是做前台的,后台有java做的;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 06:38 , Processed in 0.059548 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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