010-java 表单方式或者base64方式上传图片,后端使用nutz的post转发图片到另一个请求...

本地上传图片

方式一、使用表单方式上传-enctype

<form enctype="multipart/form-data" method="post"
action="http://face.lhx.com/auth"
 id='formBox' name="form"> 
    <input type="file" id="chooseImage" name="img">
    <input type="text" name="token" value="token222">
    <input type="text" name="authType" value="face"><br />
    <input name="" type="submit" value="提交" /> 
form>

接收方式一、后端使用Spring 的接收

@RequestParam("img") MultipartFile file

接收方式二、后端收到数据进行转发

  代码在方式二中 2、客户端当做参数接收

方式二、使用表单方式上传-图片Base64数据

有时候需要前端传输base64编码的接口上传图片,后续使用接口接收

前端使用post base64→接口接收 转发个接收 MultipartFile 文件的接口

1、客户端base64【使用前端处理将图片处理成base64格式字符串】

img=data:image/jpg;base64,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
View Code

2、客户端当做参数接收即可

在客户端使用 get方式或者post的application/x-www-form-urlencoded 方式会对base64数据中的+ /产生影响。需要程序处理转义

            MultipartFile multipartFile = null;
            byte[] decode = null;

            if (request instanceof MultipartHttpServletRequest) {
                // 使用multipart提交
                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
                List files = multipartRequest.getFiles(GatewayConstant.API_AUTHAPPORFACE_IMG);
                multipartFile = files.get(0);
                try {
                    decode = multipartFile.getBytes();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } else {
                //base64提交
                String img = request.getParameter(GatewayConstant.API_AUTHAPPORFACE_IMG);
                //这里使用application/x-www-form-urlencoded 
                // 浏览器会编码会将 + 转义 成空格  这里需要转回来  ,如果使用application/json可能不需要
                img = img.replace(" ", "+");
                String substring = img.split("base64,")[1];
                decode = Base64.decodeBase64(substring);
            }

            //region 生成jpeg图片
            File f = null;
            try {
                f = File.createTempFile("face_", ".jpg");
                OutputStream out = new FileOutputStream(f);
                out.write(decode);
                out.flush();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            //endregion


            Request req = Request.create(“http://auth.lhx.com.face”, Request.METHOD.POST);

            req.getParams().put("img", f);
            req.getParams().put("token", “token111”);
            req.getParams().put("clientName", clientName);

            Response resp = new FilePostSender(req).setTimeout(60 * 1000).send();
            

其中nutz请求处理:https://nutzam.com/core/http/overview.html

3、内部接口接收使用即可

@RequestParam("img") MultipartFile file

附注

base64与图片互相转换

public class Base64Test   
{  
    public static void main(String[] args)  
    {  
        String strImg = GetImageStr();  
        System.out.println(strImg);  
        GenerateImage(strImg);  
    }  
    //图片转化成base64字符串  
    public static String GetImageStr()  
    {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
        String imgFile = "D:\\tupian\\a.jpg";//待处理的图片  
        InputStream in = null;  
        byte[] data = null;  
        //读取图片字节数组  
        try   
        {  
            in = new FileInputStream(imgFile);          
            data = new byte[in.available()];  
            in.read(data);  
            in.close();  
        }   
        catch (IOException e)   
        {  
            e.printStackTrace();  
        }  
        //对字节数组Base64编码  
        BASE64Encoder encoder = new BASE64Encoder();  
        return encoder.encode(data);//返回Base64编码过的字节数组字符串  
    }  
      
    //base64字符串转化成图片  
    public static boolean GenerateImage(String imgStr)  
    {   //对字节数组字符串进行Base64解码并生成图片  
        if (imgStr == null) //图像数据为空  
            return false;  
        BASE64Decoder decoder = new BASE64Decoder();  
        try   
        {  
            //Base64解码  
            byte[] b = decoder.decodeBuffer(imgStr);  
            for(int i=0;ii)  
            {  
                if(b[i]<0)  
                {//调整异常数据  
                    b[i]+=256;  
                }  
            }  
            //生成jpeg图片  
            String imgFilePath = "D:\\tupian\\new.jpg";//新生成的图片  
            OutputStream out = new FileOutputStream(imgFilePath);      
            out.write(b);  
            out.flush();  
            out.close();  
            return true;  
        }   
        catch (Exception e)   
        {  
            return false;  
        }  
    }  
}  
View Code

 

 

  

你可能感兴趣的:(010-java 表单方式或者base64方式上传图片,后端使用nutz的post转发图片到另一个请求...)