多语言展示
当前在线:1693今日阅读:165今日分享:48

js 后台返回文件流如何转base64

小编教你js 后台返回文件流如何转base64
工具/原料
1

手机

2

电脑

方法/步骤
1

因为项目需要图片需要加密Base64,但是前端JS无法读取JS,所以需要在后台修改成普通的文件流。代码如下

2

public void startDownFTP1(HttpServletRequest request, HttpServletResponse response) throws Exception { FtpConfig list = null; flag1 = false; list = ftpConfigServiceI.findObjectByPK(null); FtpConfigController.connectFtp(list); String efilename = request.getParameter("efilename"); //2017年3月10日10:19:37 sfb String imagepath = request.getParameter("imagepath"); String img = FtpConfigController.downloadFile1(list, efilename, imagepath);// 下载ftp文件测试 ftp /图片名称/文件夹 已通过解密但是有Base64加密 Base64 endcoder=new Base64(); byte [] images;//返回图像 images=endcoder.decodeBase64(img);//Base64转换成byte数组 response.reset(); response.getOutputStream().write(images); flag1 = true; FtpConfigController.closeFtp(); }

3

例子说明一切先写单元测试吧:单元测试的代码如下:package test.com.cs;import com.cs.Base64Convert;import junit.framework.TestCase;import java.io.FileNotFoundException;import java.io.IOException;import java.util.logging.Logger;public class TestBase64Convert extends TestCase {    Base64Convert baseCov = null;    public TestBase64Convert(String s) {        super(s);    }    protected void setUp() throws Exception {        baseCov = new Base64Convert();    }    protected void tearDown() throws Exception {        super.tearDown();    }    public void testIoToBase64() {        try {           String strBase64 = baseCov.ioToBase64(); //将 io 转换为 base64编码            System.out.println(">>> "+strBase64);             baseCov.base64ToIo(strBase64); //将 base64编码转换为 io 文件流,生成一幅新图片        } catch (FileNotFoundException e) {            e.printStackTrace();         } catch (IOException e) {            e.printStackTrace();         }    }}------------------------------------

4

package com.cs;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import java.io.*;public class Base64Convert {    BASE64Decoder decoder = new BASE64Decoder();    public String ioToBase64() throws IOException {        String fileName = "d:/gril.gif"; //源文件        String strBase64 = null;        try {            InputStream in = new FileInputStream(fileName);            // in.available()返回文件的字节长度            byte[] bytes = new byte[in.available()];            // 将文件中的内容读入到数组中            in.read(bytes);            strBase64 = new BASE64Encoder().encode(bytes);      //将字节流数组转换为字符串            in.close();        } catch (FileNotFoundException fe) {            fe.printStackTrace();        } catch (IOException ioe) {            ioe.printStackTrace();        }        return strBase64;    }    public void base64ToIo(String strBase64) throws IOException {        String string = strBase64;        String fileName = "d:/gril2.gif"; //生成的新文件        try {            // 解码,然后将字节转换为文件            byte[] bytes = new BASE64Decoder().decodeBuffer(string);   //将字符串转换为byte数组            ByteArrayInputStream in = new ByteArrayInputStream(bytes);            byte[] buffer = new byte[1024];            FileOutputStream out = new FileOutputStream(fileName);            int bytesum = 0;            int byteread = 0;            while ((byteread = in.read(buffer)) != -1) {                bytesum += byteread;                out.write(buffer, 0, byteread); //文件写操作            }        } catch (IOException ioe) {            ioe.printStackTrace();        }    }}

5

执行截图:gril2.gif就是根据base64编码转换过来的,看到这个美女总裁,就说明你的程序成功了

注意事项

一定要细心

推荐信息