【发布时间】:2011-11-28 16:48:31
【问题描述】:
我正在用 PHP 编写一段代码来保存电子邮件附件。 我可以假设这永远不会因为操作系统之间允许的字符不同而失败吗?
foreach($message->attachments as $a)
{
// Make dir if not exists
$dir = __DIR__ . "/saved/$uid"; // Message id
if (!file_exists($dir)) mkdir($dir) or die("Cannot create: $dir");
// Save the attachment using original!!! filename as found in email
$fp = fopen($dir . '/' . $a->filename, 'w+');
fwrite($fp, $a->data);
fclose($fp);
}
【问题讨论】:
-
@rootatwc 是的,有点错误,请参阅我的编辑,但问题的关键在于附件的文件名。
-
是否有您可以使用的电子邮件 ID 或唯一字符串?
-
@ajreal 不是每个附件的 ID,只有给定邮箱的给定消息应该唯一的消息 ID。
-
啊,我明白了。只是不要保留原来的名称,给它一个新的随机名称,也可以避免安全隐患。
-
是的,您应该给附件名称,如 $email_id-1、$email_id-2 等?