IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> android pdf转换base64 服务端转为文件 -> 正文阅读

[网络协议]android pdf转换base64 服务端转为文件

1.pdf转换base64

    public static String encodeBase64File(String path) {
        File file = new File(path);
        byte[] buffer = new byte[(int) file.length()];
        try {
            FileInputStream inputFile = new FileInputStream(file);
            inputFile.read(buffer);
            inputFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Base64.encodeToString(buffer, Base64.DEFAULT);
    }

2.上传

    public void fileupload(Callback callback,String path,String serverUrl,String pdfPath) {
       // File file = new File(path);
        //String pdfbase64=NewBase64(file);


            String pdfbase64=encodeBase64File(path);

        OkHttpClient client = new OkHttpClient();
        // 上传文件使用MultipartBody.Builder
        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("pdfpath", pdfPath) // 提交普通字段
                .addFormDataPart("filebase64", pdfbase64) // 提交图片,第一个参数是键(name="第一个参数"),第二个参数是文件名,第三个是一个RequestBody
                .build();
        // POST请求
        Request request = new Request.Builder()
                .url(serverUrl)
                .post(requestBody)
                .build();
        client.newCall(request).enqueue(callback);
    }

3.服务端接收转换

    @RequestMapping("/save_pdf")
    public void saveAztFile(HttpServletRequest request, ModelMap model, HttpServletResponse response, String filebase64,
                            String pdfpath) throws Exception {
        SaveMsgEntity entity = new SaveMsgEntity();
        entity.setCode("0");// 0失败 1成功
        if (filebase64 != null && pdfpath != null && !filebase64.equals("") && !pdfpath.equals("")) {
            try {
                String localPath = "";
                String filePath = "";
                String basePath = Constants.UPLOAD_PATH + Constants.SOUND_PATH;
                filePath = pdfpath.split("//")[2];
                if (!filePath.equals("")) {
                    filePath = filePath.replace("/", "\\");
                    localPath = basePath + filePath;
                }
                /**
                 * 解码
                 */
                byte[] pdfbyte= new BASE64Decoder().decodeBuffer(filebase64);
                /**
                 * 保存到pdf
                 */
                File file = new File(localPath);
                FileUtils.writeByteArrayToFile(file, pdfbyte);
                entity.setCode("1");// 0失败 1成功
                entity.setMsg("保存成功!");
            } catch (Exception e) {
                entity.setMsg("保存pdf失败,请稍后重试!");
            }
        } else {
            entity.setMsg("数据流和路径不能为空,请稍后重试!");
        }
        ResponseUtil.responseText(response, JSON.toJSONString(entity));
    }

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 18:03:49  更:2021-12-16 18:04:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:39:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码