8

我正在创建一个简单的表单,让用户“上传”一个文件和一个评论框。用户选择文件(可以是图像或 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);

4

3 回答 3

6

今天我遇到了类似的情况并找到了解决方案,所以这里是

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 );
}
于 2014-05-18T13:21:00.810 回答
4

当您接受来自 PHP 的文件上传时,您已经存储了它。

当它存储在 tmp 文件夹中时,只需使用它。

当您的脚本结束时,PHP 会自动为您删除它。

于 2012-08-03T15:15:56.347 回答
0

通过上传文件,它会保存在您的服务器上的临时目录中。例外是 PUT 方法,在这种情况下,文件直接在 php://input 上发送。之后,您可以使用您喜欢的任何 PHP 邮件库。

PUT 文件的 PHP 手册

于 2012-08-03T15:17:38.123 回答