java 之PDF上传

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.sql.Blob;

import base.StringUtil;

/**
 * PDF上传

 */
public class PdfUploadUtil {

    public String getPdfUpload(Blob fileContent, String pdfUrl) {
        //String pdfUrl = "/huarun" + File.separator + "FileUpLoadWeb" + File.separator + "FlexRead" + File.separator + attachId
        //    + ".pdf";
        BufferedOutputStream bufferedOutputStream = null;
        try {
            byte[] bytes = fileContent.getBytes(1L, (int) fileContent.length());
            File file = null;
            String path = this.getClass().getClassLoader().getResource("").getPath();
            String srcPdfPath = path.substring(0, path.length() - 16);
            srcPdfPath = srcPdfPath + pdfUrl;
            if (!new File(srcPdfPath).exists()) {
                file = new File(srcPdfPath);
                FileOutputStream fileOutputStream = new FileOutputStream(file, true);
                bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
                bufferedOutputStream.write(bytes);
                bufferedOutputStream.flush();
                bufferedOutputStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (bufferedOutputStream != null) {
                try {
                    bufferedOutputStream.close();
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                }
            }
        }
        return pdfUrl;
    }

    /** 
     * 下载文件到共享服务器 
     * @param urlStr 
     * @param fileName 
     * @param savePath 
     * @throws IOException 
     */
    public static void downLoadFromUrl(String url, String fileName, String savePath) throws IOException {
        if (StringUtil.isEmpty(url)) {
            return;
        }
        int charAt = url.indexOf("//");
        String urlEncode = url.substring(0, charAt + 2);
        String otherUrl = url.substring(charAt + 2);
        String[] urlArry = otherUrl.split("/");
        for (int index = 0; index < urlArry.length; index++) {
            int charAtCount = urlArry[index].indexOf(":");
            if (charAtCount < 0) {
                urlEncode += URLEncoder.encode(urlArry[index], "utf-8") + "/";
            } else {
                urlEncode += urlArry[index] + "/";
            }
        }
        urlEncode = urlEncode.substring(0, urlEncode.length() - 1);
        // 获取文件名
        URL myURL = new URL(urlEncode);
        URLConnection conn = myURL.openConnection();
        //设置超时间为3秒  
        conn.setConnectTimeout(3 * 1000);
        conn.connect();
        InputStream is = conn.getInputStream();
        int fileSize = conn.getContentLength();// 根据响应获取文件大小
        if (fileSize <= 0) {
            throw new RuntimeException("无法获知文件大小 ");
        }
        if (is == null) {
            throw new RuntimeException("stream is null");
        }
        //文件保存位置  
        File saveDir = new File(savePath);
        if (!saveDir.exists()) {
            saveDir.mkdirs();
        }
        String path = savePath + File.separator + fileName;
        FileOutputStream fos = new FileOutputStream(path);
        // 把数据存入路径+文件名
        byte buf[] = new byte[1024 * 10];
        do {// 循环读取
            int numread = is.read(buf);
            if (numread == -1) {
                break;
            }
            fos.write(buf, 0, numread);
        } while (true);
        is.close();//关闭输入流
        fos.close();//关闭输出流
    }

}

©️2020 CSDN 皮肤主题: 终极编程指南 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值