java上传文件并保存到服务器----大文件上传

2023-01-02 00:00:00 服务器 上传文件 并保存

一般的文件上传(不依赖spring)

 /**
     * 保存文件
     *
     * @param path      文件绝对路径
     * @param fileBytes 文件字节数据
     * @throws ApiServiceException
     */
    public void save(String path,  byte [] fileBytes) throws ApiServiceException {
  
        //保存文件到对应位置
        File dir = new File(path);
        if (!dir.getParentFile()
                .exists()) {
            boolean mkdir = dir.getParentFile()
                               .mkdirs();
            if (!mkdir) {
                // 文件父路径创建失败,父路径['{0}']
                throw IctsServiceError.FILE_SAVE_ERROR.toException(
                        i18n(i18nPreFix + "file.parent.path.create.failure",
                                dir.getParentFile().getAbsolutePath()));
            }
        }
        try {
            FileUtils.writeByteArrayToFile(dir, fileBytes);
        } catch (IOException e) {
        //抛出异常  
        }
    }

依赖spring

/**
     * 保存文件
     *
     * @param path 文件绝对路径
     * @param file 文件数据
     * @throws ApiServiceException
     */
    private void save(String path, MultipartFile file) throws ApiServiceException {
        //保存文件到对应位置
        File dir = new File(path);
        if (!dir.getParentFile().exists()) {
            dir.getParentFile().mkdirs();
        }
        try {
            file.transferTo(dir);
        } catch (IOException e) {
            //抛出异常
        }
    }

大文件上传(不依赖spring)

/**
     * 保存文件
     *
     * @param path      文件绝对路径
     * @param inputStream 文件流
     * @throws ApiServiceException
     */
    public void save(String path, InputStream inputStream) throws ApiServiceException {
        //保存文件到对应位置
        File dir = new File(path);
        boolean fileExists = dir.getParentFile() .exists();
        if (!fileExists) {
            boolean mkdir = dir.getParentFile().mkdirs();
            if (!mkdir) {
                // 文件路径创建失败,
            }
        }
        try (FileOutputStream fos = new FileOutputStream(dir)) {
            byte[] b = new byte[1024];
            while ((inputStream.read(b)) != -1) {
                fos.write(b);
            }
        } catch (IOException e) {
            //文件流转读取失败
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                  流关闭失败
                }
            }
        }
    }

从spring 的MultipartFile获取字节数组或者inputstream流

MultipartFile file
file.getBytes();
file.getInputStream()

    原文作者:L-岁月染过的梦
    原文地址: https://blog.csdn.net/weixin_49329814/article/details/123548260
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章