接收附件问题

huangjiuyt 2003-01-05 12:12:31
我用javamail接收附件时可是找不到下载的附件的存放路径,有谁知道呀,谢谢
另外,我想做一个web的界面,显示每个邮件附件的名字,可以实现单个下载,可以实现多个下载,我应该怎么实现,请高手教教
...全文
29 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
runi 2003-09-11
  • 打赏
  • 举报
回复
附件:
1。如果要把附件存放在web服务器上,.
只需要在接受邮件的时候,指定web服务器上的附件存放位置将邮件的附件复制过去就可以了。
public synchronized Vector getAtta(Message message)
{
try
{
Vector v_atta=new Vector();//用于存贮附件保存的路径和文件名
String Content="";
String[] fileName = null;
InputStream[] inputStream = null;
Object o = message.getContent(); //当Message对象含有附件时,其内容会以Multipart的形式存在
if (o instanceof String)
{
//return null;
//不含附件
}
else if (o instanceof Multipart)
{
//可能含有附件
//以Multipart的getBodyPart方法取得内容部分,并以getDisposition方法取得邮件的配置

Multipart mp = (Multipart) o;
fileName = new String[mp.getCount()];
inputStream = new InputStream[mp.getCount()];
OnlineEdit oe=new OnlineEdit();
String Online_ID=oe.getOnline_ID();
for (int i = 0, n = mp.getCount(); i < n; i++)
{
Part part = mp.getBodyPart(i);
if (i == 0)
{
Content = part.getContent().toString();
}
String disposition = part.getDisposition();
//判断Multipart中是否含有附件的方法.则是依据getDisposition所返回的内容
if ( (disposition != null) &&
(disposition.equals(Part.ATTACHMENT) ||
disposition.equals(Part.INLINE)))
{
fileName[i] = part.getFileName();
System.out.println(fileName[i]);
fileName[i] = fileName[i].valueOf(i) +
fileName[i].substring(fileName[i].indexOf("."),
fileName[i].length());//更换文件名
fileName[i]="E"+Online_ID+fileName[i];
//System.out.println(fileName[i]);
inputStream[i] = part.getInputStream();
System.out.println(inputStream[i].toString());
PropPath pp=new PropPath();

String pathName ="\\Atta";//福建保存路径
pathName=pp.getAppPath(pathName);
////////////////存贮附件保存的路径和文件名
v_atta.add(pathName + fileName[i]);
////////////////
File file = new File(pathName + fileName[i]);
FileOutputStream outfile = new FileOutputStream(file);
BufferedInputStream br = new BufferedInputStream(inputStream[i]);
BufferedOutputStream bw = new BufferedOutputStream(outfile);

int b;
while ( (b = br.read()) != -1)
{
bw.write(b);
}
bw.flush();
outfile.close();
}
}
}
Vector V_res=new Vector();
V_res.add(fileName);
V_res.add(Content);
V_res.add(v_atta);
return V_res;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
maobing 2003-09-11
  • 打赏
  • 举报
回复
up
iamqqmyheart 2003-01-06
  • 打赏
  • 举报
回复
//附件...
String filename="";
try{
Object obj = message.getContent();
String disp="";
if (obj instanceof Multipart){
Multipart mp = (Multipart)obj;
for(int i=0;i<mp.getCount();i++){
part = mp.getBodyPart(i);
disp = part.getDisposition();
if(disp!=null){
if ((disp.equalsIgnoreCase(javax.mail.Part.ATTACHMENT))||(disp.equals(Part.INLINE)))
filename=filename+saveAttachments(part)+";";
}
}
}
}catch(Exception e){System.out.println("attachment:");e.printStackTrace();}
huangjiuyt 2003-01-06
  • 打赏
  • 举报
回复
帮以下
win886688 2003-01-05
  • 打赏
  • 举报
回复
这是因为附件名称是中文的。你可以搜一下这方面的解决方法!

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧