我的网站上有一个联系表单,允许用户将文件作为附件发送到电子邮件。现在我的理由是,我不需要或者不一定希望每个图像都上传到网站服务器,但是当使用表单输入文件时,无论如何都会上传。
表单上传文件是有意义的,因为这是它的功能,但我想知道这是不可避免的,还是有办法仍然将图像作为附件发送,但没有将其上传到服务器。< / p>
答案 0 :(得分:2)
从这个答案https://stackoverflow.com/a/23849972/中拉出来(并花了一些时间找到解决方案)。
旁注:我赞同它所取得的答案,只是你知道。
&#34;我将$_FILES['attachment']['tmp_name']
分配给一个临时变量,它有效!
不知道为什么,但这解决了我。
这是我的代码&#34;
// 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']);
答案 1 :(得分:0)
如评论中所述:
1。)即使可以在发布后自动删除文件,我使用的电子邮件功能也没有这样设置。因此,上传到服务器是不可避免的。或者至少据我所知。
2.)我可以在发送邮件后从服务器删除该文件。
如果发现能够最好地解决我的问题的解决方案,将会更新。