我正在创建一个简单的表单,让用户“上传”一个文件和一个评论框。 在用户选择文件(可以是图像或pdf)并单击提交后,我不会存储 将文件放入我的网络服务器,该文件将被插入电子邮件并发送给我。
我的问题是:如何在不将文件存储在任何地方的情况下附加文件。
我不想使用第三方模块。
更新
$attachment = $_FILES["OrderList"]["tmp_name"];
$content = file_get_contents($attachment);
$content = chunk_split(base64_encode($content));
我收到了一个错误:
第24行的C:\ dir \ orders \ upload.php中的文件名不能为空
第24行是$content = file_get_contents($attachment);
答案 0 :(得分:4)
今天我遇到了类似的情况并找到了解决方案,所以这里是
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
$newname= $_FILES["file"]["tmp_name"].".".$extension;
rename($_FILES["file"]["tmp_name"],$newname);
$attachments = array( $newname );
wp_mail('emailto send', 'title', 'message','',$attachments );
}
答案 1 :(得分:3)
当您接受来自PHP的文件上传时,您已经存储了它。
将其存储在tmp文件夹中时,只需使用它。
当脚本结束时,PHP会自动为您删除它。
答案 2 :(得分:0)
通过上传文件,它会以临时目录保存在您的服务器上。例外是PUT方法,在这种情况下,文件直接在php:// input上发送。之后,您可以使用您喜欢的任何PHP邮件库。