日期:2014-05-18  浏览次数:20375 次

请赐教???jmail接收附件重名的问题
我用jmail接收附件后,会直接把附件a.txt保存在服务器上的一个文件夹Attachment里
但如果我再接收一个附件,名字也是a.txt,那么就会抛出异常,提示文件夹Attachment中已经存在同名的文件,所以不让保存。

遇到这种情况我该怎么解决???

------解决方案--------------------
我用jmail接收附件后,会直接把附件a.txt保存在服务器上的一个文件夹Attachment里
但如果我再接收一个附件,名字也是a.txt,那么就会抛出异常,提示文件夹Attachment中已经存在同名的文件,所以不让保存。

你保存在服务器上当然不能用同样的名字
Random TempNameInt = new Random();
string NewMailDirName = TempNameInt.Next(100000000).ToString();
Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath( ". ") + "\\AttachFiles\\ " + Username + "\\ " + NewMailDirName);

string mailPath = "\\AttachFiles\\ " + Username + "\\ " + NewMailDirName + "\\ " + attname;
att.SaveToFile(System.Web.HttpContext.Current.Server.MapPath( ". ") + mailPath)
------解决方案--------------------
啊呀,你啊,你下载下来邮件后,第一件事情是读出邮件标题和内容,然后读取附件名称如a.txt,把它保存到一个变量,然后生成唯一的文件名(用时间点加id),这里就用你的aa.txt,保存到第二个变量,这样把两个名字存入数据库的两个列,取出的时候自然用aa.txt这个名字,名字的差别又不重要,又不是变了就不能运行。