当前位置:首页 > Java

java 如何推送附件

2026-03-18 07:20:29Java

使用 JavaMail API 发送带附件的邮件

引入 JavaMail 依赖(Maven 项目):

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

创建邮件并添加附件:

java 如何推送附件

Properties props = new Properties();
props.put("mail.smtp.host", "smtp.example.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");

Session session = Session.getInstance(props, new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("username", "password");
    }
});

try {
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("from@example.com"));
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to@example.com"));
    message.setSubject("Email with Attachment");

    Multipart multipart = new MimeMultipart();

    // 邮件正文
    MimeBodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("This email contains an attachment");
    multipart.addBodyPart(messageBodyPart);

    // 添加附件
    MimeBodyPart attachmentPart = new MimeBodyPart();
    attachmentPart.attachFile(new File("path/to/attachment.pdf"));
    multipart.addBodyPart(attachmentPart);

    message.setContent(multipart);
    Transport.send(message);
} catch (Exception e) {
    e.printStackTrace();
}

使用 HTTP 客户端发送带附件的请求

使用 Apache HttpClient 发送 multipart/form-data 请求:

java 如何推送附件

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("http://example.com/upload");

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "value1", TEXT_PLAIN);
builder.addBinaryBody("file", new File("path/to/file"), ContentType.APPLICATION_OCTET_STREAM, "filename.ext");

HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);

CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();

使用 Spring Boot 上传文件

创建文件上传控制器:

@RestController
public class FileUploadController {
    @PostMapping("/upload")
    public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file) {
        try {
            byte[] bytes = file.getBytes();
            Path path = Paths.get("uploads/" + file.getOriginalFilename());
            Files.write(path, bytes);
            return ResponseEntity.ok("File uploaded successfully");
        } catch (IOException e) {
            return ResponseEntity.status(500).body("Upload failed");
        }
    }
}

使用 FTP 协议上传文件

使用 Apache Commons Net 进行 FTP 文件传输:

FTPClient ftpClient = new FTPClient();
try {
    ftpClient.connect("ftp.example.com");
    ftpClient.login("username", "password");
    ftpClient.enterLocalPassiveMode();

    File localFile = new File("local/path/file.txt");
    InputStream inputStream = new FileInputStream(localFile);
    boolean success = ftpClient.storeFile("remote/path/file.txt", inputStream);
    inputStream.close();

    if (success) {
        System.out.println("File uploaded successfully");
    }
} finally {
    if (ftpClient.isConnected()) {
        ftpClient.logout();
        ftpClient.disconnect();
    }
}

标签: 附件java
分享给朋友:

相关文章

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

java如何输入数组

java如何输入数组

输入数组的方法 在Java中,可以通过多种方式输入数组,具体取决于输入源(如控制台、文件等)和数组类型(如基本类型或对象类型)。以下是几种常见的方法: 使用Scanner从控制台输入 对于基本数据类…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读…

前后端分离react如何上传附件

前后端分离react如何上传附件

前后端分离React上传附件的方法 在前后端分离的架构中,React前端通常通过HTTP请求与后端API交互。上传附件通常使用multipart/form-data格式,以下是具体实现方法: 使用H…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…

java实现php

java实现php

Java 实现 PHP 功能的方法 在 Java 中实现 PHP 的功能通常涉及以下几个方面:字符串处理、Web 开发、数据库操作等。以下是几种常见需求的实现方法。 字符串处理 PHP 中的字符串处…