直接从其tmp位置使用上传的文件

时间:2011-11-01 12:05:31

标签: php email file-upload

我有一个小表单,用户上传文件。我想要做的是直接从其tmp位置通过电子邮件发送文件,而不先移动它;因为没有必要将它存储在服务器上。因为PHP在执行脚本后从tmp文件夹中删除了文件,所以这是理想的。

我正在使用Manuel Lemos的精彩Mime message e-mail class,并且可以这样做:

$tmp_file = '/www/vhosts/mysite.be/subdomains/subdomainname/httpdocs'.$_FILES['attachment']['tmp_name'];
$attachment=array(
    "FileName" => $_FILES['attachment']['name'],
    "Content-Type" => $_FILES['attachment']['type'],
    "Data" => $tmp_file,
    "Disposition" => "attachment"
);
$email_message->AddFilePart($attachment); 

问题是我似乎无法从其tmp位置检索文件。我在共享主机系统上。

任何人都可以分享观点/答案吗?期待您的观点。

P.S。:请注意上传限制/超时/ enctype没有问题......

1 个答案:

答案 0 :(得分:1)

您不需要放置$tmp_file的目录,因为tmp_name已包含此目录。还要检查文件是否存在,以便对其进行调试。

$tmp_file = $_FILES['attachment']['tmp_name'];

if (file_exists($tmp_file)) {
     echo "yay";
}
else {
     echo "nay :-(";
}

看看之后会发生什么。