将上传的文件作为附件发送但不保存到服务器

Sending an uploaded file as attachment but not saving to server

我的网站上有一个联系表单,允许用户将文件作为电子邮件附件发送。现在我的推理是,我不需要也不一定希望将每张图片都上传到网站服务器,但是当使用表单输入文件时,我无论如何都会上传。

表单上传文件是有道理的,因为这是它的功能,但我想知道这是否不可避免,或者是否有办法仍然将图像作为附件发送但不将其上传到服务器.

如评论所述:

1.) 尽管可以在发布后自动删除文件,但我使用的电子邮件功能不是这样设置的。因此上传到服务器是不可避免的。或者至少据我所知。

2.) 我可以在发送邮件后从服务器上删除文件。

如果发现最能解决我的问题的解决方案,将会更新。

从这个答案中提取(并花了一些时间为他们找到解决方案)。

旁注:我对从中提取的答案投了赞成票,你知道的。

“我将 $_FILES['attachment']['tmp_name'] 分配给了一个临时变量并且它起作用了! 不知道为什么,但这为我解决了。 这是我的代码

// Swiftmail commands ====================================
require_once('./swiftmailer/lib/swift_required.php');

$transport = Swift_SmtpTransport::newInstance('smtp.host.com', 587)
->setUsername('email@host.com')
->setPassword('pass');

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance()
->setSubject($subject_temp)

->setFrom(array($from_email => $full_name))

->setTo(array('email@host.com' => 'Jack'))

->setBody($message_temp)

->attach(Swift_Attachment::fromPath($file_temp_name)

->setFilename($name_of_file));

$result = $mailer->send($message);

// Swiftmail commands ====================================

其中 $file_temp_name = $_FILES['attachment']['tmp_name'];$name_of_file = basename($_FILES['attachment']['name']);

  • 所以反过来(这是我知道可以做的事情),您将使用服务器上临时存储的文件并将其附加到邮件中,一旦成功,邮件就会自动删除 served/processed.