NC获取附件上传的文件,并传到客户端

                                                      NC获取附件上传的文件,并传到客户端

       今天写好UPM文件,来测试,又遇到了新的大问题,服务器上获取的文件是有的,但是客户端获取的文件却始终报错,然后继续看代码,最后才想明白,客户端和服务器不是一体的,那肯定不能用File来传,要用数据流。
                                                               在这里插入图片描述

我的大概实现步骤

(1)用前台模型获取相应AggVO

                                                        请添加图片描述

(2)去查找不同文件的附件

                                   请添加图片描述

(3)传入主键和附件文件夹名称

请添加图片描述

(4)查找附件所在的真实保存路径

请添加图片描述

(5)使用读取服务器文件方法

/**
	  * 读取服务器文件
	  * 
	  * @throws IOException
	  */
	 @SuppressWarnings("resource")
	 @Override
	 public byte[] getNCHomeFile(String path) throws IOException {
	  // TODO 自动生成的方法存根
	  String ncHome = RuntimeEnv.getInstance().getNCHome();
	  
	  FileInputStream in = new FileInputStream(path);
	  //转为byte传输
	     BufferedInputStream bis = new BufferedInputStream(in);
	        ByteArrayOutputStream bos = new ByteArrayOutputStream();
	        int date = -1;
	        while ((date = bis.read()) != -1) {
	            bos.write(date);
	        }
	        byte[] bytes = bos.toByteArray();  

	  return bytes;

	 }

(6)使用byte数组转换文件方法

/**
     * 将Byte数组转换成文件
     * @param bytes byte数组
     * @param filePath 文件路径
     * @param fileName  文件名
     */
    public File fileToBytes(byte[] bytes, String filePath, String fileName) {
        BufferedOutputStream bos = null;
        FileOutputStream fos = null;
        File file = null;
        try {

            file = new File(filePath + fileName);
            if (!file.getParentFile().exists()){
                //文件夹不存在 生成
                file.getParentFile().mkdirs();
            }
            fos = new FileOutputStream(file);
            bos = new BufferedOutputStream(fos);
            bos.write(bytes);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (bos != null) {
                try {
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
		return file;
    }

       通过上述步骤和方法便可以实现客户端获取服务器文件,嘿嘿嘿,贴个大概,完整步骤就不会让人开动脑子,有了方法,大家可以自己编写。

参考博客:
       https://blog.csdn.net/qq_37729885/article/details/84790906
       https://www.cnblogs.com/pxblog/p/14919094.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头的阿光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值