当前位置: 首页 > wzjs >正文

做h5的图片网站微信小程序制作软件免费

做h5的图片网站,微信小程序制作软件免费,灯箱网站开发,rar在线解压网站目录 前言1. 本地文件2. 在线URL3. 彩蛋 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 相关的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全&…

目录

  • 前言
  • 1. 本地文件
  • 2. 在线URL
  • 3. 彩蛋

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

相关的Java知识推荐阅读:

  1. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
  2. 【Java项目】实战CRUD的功能整理(持续更新)

发送带附件的邮件是一个常见的需求。但在实际应用中,附件的来源可能不同:

  • 本地文件:直接从服务器的文件系统读取
  • 在线 URL:附件是一个 HTTP 资源,需要先下载

如果邮件服务方法只支持 File 类型的附件,而数据来源是一个 URL 链接,就需要进行额外的处理

方案适用场景优点缺点
方案 1:下载文件后发送sendMultiMail 只能接受 File-兼容所有 File 处理方法,确保附件可用-需要临时存储,占用磁盘空间
方案 2:修改 sendMultiMail 使其支持 URLsendMultiMail 支持 URL 附件- 无需存储文件,减少 IO- 需要改造 sendMultiMail,并且 URL 可能会失效

从实战中学习出发:

在这里插入图片描述

1. 本地文件

附件文件是 本地文件,可以直接使用 File 对象传递给邮件发送方法,例如:

List<File> attachments = Collections.singletonList(new File("C:\\images\\test.jpg"));

传入 sendMultiMail 方法:

Long messageId = mailSendService.sendMultiMail(mailList, getLoginUserId(), UserTypeEnum.ADMIN.getValue(),templateCode, templateParams, attachments);

2. 在线URL

new File(String path) 只能处理 本地文件路径,但如果xxx返回的是 HTTP URL(如 http://example.com/image.jpg),则会报 FileNotFoundException,因为 Java 认为这是一个无效的路径

解决方法:

  • 方案 1:先下载 URL 文件到本地,再作为 File 传入
    优点: ✅ 兼容所有支持 File 类型的邮件方法。✅ 确保文件下载完成后再发送,避免资源问题。
    缺点: ❌ 可能会导致 磁盘 IO 开销,尤其是多个邮件附件时。❌ 需要临时存储文件,增加服务器磁盘负担。
  • 方案 2:修改 sendMultiMail 方法,让它支持直接使用 URL
    优点:✅ 避免本地存储,直接使用在线资源。✅ 减少 IO 开销,更适合大规模邮件发送。
    缺点: ❌ 需要 sendMultiMail 方法支持 URL 附件,否则无法直接使用。❌ URL 可能会过期,影响邮件内容长期有效性。

可以使用 java.net.URL 和 Files.copy 方法下载文件:

import java.io.*;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;public class FileDownloadUtil {public static File downloadFileFromUrl(String fileUrl) throws IOException {URL url = new URL(fileUrl); // 创建 URL 对象File tempFile = File.createTempFile("attachment_", ".jpg"); // 生成临时文件try (InputStream in = url.openStream()) {Files.copy(in, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);}return tempFile;}
}

下载后发送邮件
在发送邮件时,先下载附件:

// 处理附件,将 HTTP 图片下载到本地
List<File> attachments = new ArrayList<>();
try {File downloadedFile = FileDownloadUtil.downloadFileFromUrl(cabinetSwapDO.getImgCntrF());attachments.add(downloadedFile);
} catch (IOException e) {e.printStackTrace(); // 记录日志
}// 发送邮件
Long xx = mailSendService.sendMultiMail(mail, getLoginUserId(), UserTypeEnum.ADMIN.getValue(),templateCode, templateParams, attachments);

sendMultiMail 方法内部使用的是 javax.mail,可以改造 sendMultiMail 以支持 URL:

import javax.activation.DataHandler;
import javax.activation.URLDataSource;
import javax.mail.internet.MimeBodyPart;
import java.net.URL;public class MailAttachmentUtil {public static MimeBodyPart createUrlAttachment(String fileUrl) throws Exception {MimeBodyPart attachmentPart = new MimeBodyPart();URL url = new URL(fileUrl);attachmentPart.setDataHandler(new DataHandler(new URLDataSource(url)));attachmentPart.setFileName("attachment.jpg"); // 可根据实际情况动态命名return attachmentPart;}
}

3. 彩蛋

临时下载的文件

Windows:通常存储在 C:\Users\用户名\AppData\Local\Temp
Linux / macOS:通常存储在 /tmp/

截图如下:

在这里插入图片描述

不希望存储在系统临时目录,而是放到自定义目录,可以这样修改 downloadFileFromUrl 方法:

public static File downloadFileFromUrl(String fileUrl, String saveDir) throws IOException {URL url = new URL(fileUrl);// 确保目录存在File directory = new File(saveDir);if (!directory.exists()) {directory.mkdirs();}// 指定下载文件路径File file = new File(saveDir + File.separator + "attachment.jpg");// 下载文件try (InputStream in = url.openStream()) {Files.copy(in, file.toPath(), StandardCopyOption.REPLACE_EXISTING);}return file;
}

调用方式:

File file = downloadFileFromUrl("http://example.com/image.jpg", "D:\\attachments");
System.out.println("Saved file path: " + file.getAbsolutePath());
http://www.dtcms.com/wzjs/785762.html

相关文章:

  • 学院网站建设规划新能源电动汽车价格表
  • 南宁网站设计推荐安监局网站做应急预案备案
  • wordpress淘宝推广百度的seo关键词优化怎么弄
  • 网站建设市场价国家企业公司网站建设
  • 网站开发需要哪些条件wordpress 评论去审核
  • php语言做的大网站工商营业执照网上年审入口
  • 人才招聘网站开发+源代码linux服务器wordpress
  • 高仿奢侈手表网站判断网站是什么系统做的
  • 珠海网站制作推广公司哪家好郑州网站建设 天强科技
  • 西宁公司网站设计中国第一个做电商网站
  • 创建企业网站下载公众号
  • 小榄做网站上海市网站建设
  • 在线做qq空间的网站wordpress 小视频模板
  • 爱站关键词挖掘软件西安推荐企业网站制作平台
  • 大型网站维护费用怎么查网站的备案号
  • 叫别人做网站要多久淄博网站建设卓迅网络
  • 建设工程招投标网站杭州网站制作工具
  • 把网站放到域名上河南宝盈建设工程有限公司网站
  • 中学生设计的网站如何看出一个网站优化的是否好
  • 网站设计公司服务平台哈尔滨h5模板建站
  • 网页设计与网站开发试卷手机上部署网站
  • 怎么做二级网站百度 营销推广多少钱
  • 模板建站优点网店代运营
  • 网站的类型主要有免费做网站怎么做网站吗2
  • asp网站怎样做app网站建设如何做报价
  • 五金网站模板注册公司流程和费用大概多少钱
  • 嘉兴做网站公司哪家好北京网站建设外包公司哪家好
  • 做运动鞋的网站视频网站排行榜前十名
  • 甘肃建投土木工程建设有限公司网站请问做网站和编程哪个容易些
  • 中介网站开发广西做网站找谁