Java文件上传下载及邮件收发是Java程序开发中常用的功能,本文将为大家介绍Java文件上传下载及邮件收发的实例代码,帮助大家更好地掌握Java编程中这些常见功能的实现。
文件上传下载
上传文件
文件上传是Web应用开发中常见的功能之一。以下是一个文件上传的示例代码:
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
// 检查文件是否为空
if (file != null) {
// 获取文件名
String filename = file.getOriginalFilename();
// 创建文件存储路径
String filepath = "D:/uploads/";
File dest = new File(filepath + filename);
// 如果文件已存在,则删除原文件
if (dest.exists()) {
dest.delete();
}
// 保存文件
try {
file.transferTo(dest);
return "上传成功!";
} catch (IOException e) {
e.printStackTrace();
return "上传失败!";
}
} else {
return "请选择要上传的文件!";
}
}
以上代码中,@PostMapping("/upload")
注解表示上传文件的请求路径为“/upload”。@RequestParam("file") MultipartFile file
注解表示上传的文件是一个MultipartFile类型的文件对象。代码中,首先检查上传的文件是否为空,接着获取文件名并设置文件存储路径。如果文件已存在,则删除原文件。最后,调用MultipartFile对象的transferTo()
方法将文件保存到指定路径。
下载文件
文件下载是Web应用开发中常见的功能之一。以下是一个文件下载的示例代码:
@GetMapping("/download")
public void download(HttpServletResponse response) {
// 设置文件名
String filename = "example.txt";
// 设置文件路径
String filepath = "D:/downloads/";
File file = new File(filepath + filename);
// 如果文件存在,则进行下载
if (file.exists()) {
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
response.setContentType("application/octet-stream");
response.setContentLength((int) file.length());
// 读取要下载的文件,发送给客户端
try {
FileInputStream in = new FileInputStream(file);
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
in.close();
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("要下载的文件不存在!");
}
}
以上代码中,@GetMapping("/download")
注解表示下载文件的请求路径为“/download”。代码中,首先设置文件名和文件存储路径。然后判断文件是否存在,如果存在,则设置response的Header信息,并读取文件内容发送给客户端。
邮件收发
发送邮件
下面是一个发送邮件的示例代码:
public class MailSender {
private JavaMailSender mailSender;
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
public void sendMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
// 发件人
message.setFrom("example@example.com");
// 收件人
message.setTo(to);
// 邮件主题
message.setSubject(subject);
// 邮件内容
message.setText(content);
// 发送邮件
mailSender.send(message);
System.out.println("邮件发送成功!");
}
}
以上代码中,需要注入JavaMailSender
对象并设置发件人、收件人、邮件主题和邮件内容。调用mailSender.send(message)
方法发送邮件。
接收邮件
下面是一个接收邮件的示例代码:
public class MailReceiver {
private JavaMailSender mailSender;
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
public void receiveMail() throws MessagingException, IOException {
// 设置收件人邮箱地址
String username = "example@example.com";
// 创建Session
Session session = Session.getDefaultInstance(new Properties());
// 创建Store对象,并连接到对应的邮箱服务器
Store store = session.getStore("pop3");
store.connect("pop3.example.com", 110, username, "password");
// 打开收件箱
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
// 获取邮件列表
Message[] messages = folder.getMessages();
// 遍历邮件,并打印邮件信息
for (int i = 0; i < messages.length; i++) {
Message message = messages[i];
Address[] froms = message.getFrom();
String subject = message.getSubject();
System.out.println("邮件发送人:" + froms[0]);
System.out.println("邮件主题:" + subject);
System.out.println("邮件内容:" + message.getContent().toString());
}
folder.close(false);
store.close();
}
}
以上代码中,需要注入JavaMailSender对象并设置收件人邮箱地址。调用session.getStore()
方法创建Store对象,并连接到对应的邮箱服务器。接着打开收件箱,并获取邮件列表。遍历邮件,并打印邮件信息。
通过以上的示例代码,相信大家已经了解Java文件上传下载及邮件收发的基本实现方法了。在开发实际项目过程中,可以根据需求进行相应的修改和扩展。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java文件上传下载、邮件收发实例代码 - Python技术站