开放通知接口,执行文件同步操作

复制代码
View Code
package me.xuzs.sso.web.servlet;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UpdateStaticResource extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String updateFile = req.getParameter("updateFile");
        String saveFile = "d:/" + updateFile;
        if(!processUpdate(updateFile, saveFile)){
            // log
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.doPost(req, resp);
    }

    @Override
    public void init() throws ServletException {
        super.init();
    }
    
    private boolean processUpdate(String url, String downloadFile){
        // TODO 此处读取OM地址
        String fullUrl = "http://xuzs-host.xuzs.com" + url;
        int bytesum = 0;
        int byteread = 0;  
        InputStream inStream = null;
        FileOutputStream fos = null;
        try {
            URL fileUrl = new URL(fullUrl);
            inStream = fileUrl.openStream();
            fos = new FileOutputStream(downloadFile);
            File file = new File(downloadFile);
            if(!file.exists()){
                file.createNewFile();
            }
            byte[] buffer = new byte[1204];
            while ((byteread = inStream.read(buffer)) != -1) {
                bytesum += byteread; 
//                System.out.println(bytesum);
                
                fos.write(buffer, 0, byteread);
            }
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        } finally {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
    }

}
复制代码

 

posted @   许仙儿  阅读(197)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示