首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 將網頁生成的二維碼圖片下載儲存為 PNG 檔案

     編輯:程式設計綜合問答

需求

從 https://wx.yseasy.com/erweima_1.asp?val=yyy 取得動態生成的二維碼圖片,儲存至伺服器本地檔案系統。

核心代碼:輸入流複製到檔案輸出流

try {
    URL url = new URL("https://wx.yseasy.com/erweima_1.asp?val=yyy");
    try (InputStream in = url.openStream();
         FileOutputStream fos = new FileOutputStream("/xxx/yy.png")) {
        byte[] buffer = new byte[1024];
        int len;
        while ((len = in.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}

關鍵點

  • url.openStream() 直接取得 HTTP 回應實體輸入流
  • 使用 try-with-resources (Java 7+) 自動關閉流
  • 緩衝區大小 1024~8192 位元組均可
  • 若需存資料庫,可用 ByteArrayOutputStream 讀取位元組陣列再 Base64 編碼

進階:HttpClient 版本(支援重導向、Header)

CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet(url);
try (CloseableHttpResponse resp = client.execute(get);
     InputStream in = resp.getEntity().getContent();
     FileOutputStream fos = new FileOutputStream(file)) {
    IOUtils.copy(in, fos); // Apache Commons IO
}

注意事項

  • 確認目標 URL 直接回傳圖片二進制(Content-Type: image/png),而非 HTML 頁面
  • 處理 HTTP 錯誤狀態碼(404, 500 等)
  • 大檔案考慮斷點續傳或非同步下載
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved