情况是这样的:
首先,我们在内存中生成一个文件,我们可以得到一个InputStream对象,InputStream对象必须作为电子邮件的附件发送...语言是java,我们使用spring发送电子邮件.
我发现很多,但我找不到如何发送电子邮件附件使用InputStream ...我尝试这样做:
InputStreamSource iss = null;
iss = new InputStreamResource(new FileInputStream("c:\\a.txt"));
MimeMessageHelper message = new MimeMessageHelper(mimeMessage,
true, "UTF-8");
message.addAttachment("attachment", iss);
Run Code Online (Sandbox Code Playgroud)
但我们例外:
传入资源包含一个开放流:无效参数.JavaMail需要一个InputStreamSource,为每个调用创建一个新流.
是的,我们的客户想要上传多个文件.我们使用春天3 mvc.像这样的官方例子:
标记:
<form method="post" action="/form" enctype="multipart/form-data">
<input type="text" name="name"/>
<input type="file" name="file"/>
<input type="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)
码:
@RequestMapping(value = "/form", method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
// store the bytes somewhere
return "redirect:uploadSuccess";
} else {
return "redirect:uploadFailure";
}
}
Run Code Online (Sandbox Code Playgroud)
只有一个文件,所以我可以在方法中写入文件输入名称.但如果我想上传很多文件,我该怎么办?我无法写入所有文件输入名称,因为如果是由js代码生成的.我只知道它的名字就像'attach_'那样,我应该在方法中写什么?如果我这样写
@RequestParam() MultipartFile file
Run Code Online (Sandbox Code Playgroud)
要么
@RequestParam("attach_") MultipartFile file
Run Code Online (Sandbox Code Playgroud)
我会收到一个错误.
我最近使用的是春季3.我想使用REST.问题是,我想使用许多不同的路径.如通知/*,用户/*等我知道如何配置一个.
<servlet>
<servlet-name>notice</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>notice</servlet-name>
<url-pattern>/notice/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
所以,如果我想在web.xml中添加/ user/*,我该怎么办?如何配置?谢谢