【问题标题】:Linking Uploaded File in Phpmailer在 Phpmailer 中链接上传的文件
【发布时间】:2015-03-15 08:58:39
【问题描述】:

我正在尝试将使用 phpmailer 上传的文件的链接存储在我的 MySQL 数据库中,以便当网页调用记录时,用户可以下载文件。

在添加锚标记之前,我的文件已按我的意愿附加。现在他们不再附加到电子邮件中,只有文件名进入数据库。我错过了一些简单的东西吗?

$mail->AddAttachment("<a href='/home/company/upload/'>".$_FILES['rfile']['name'][0]."</a>");   // add attachments

$mail->AddAttachment("<a href='/home/company/upload/'>".$_FILES['rfile']['name'][1]."</a>");   // add attachments

【问题讨论】:

  • ['name'] 是文件在客户端原始机器上的任何名称。您需要使用['tmp_name'],这是PHP 将文件放在服务器上的位置。当然,这仍然毫无意义,因为上传临时目录通常位于文档根目录之外的某个位置。您需要显示您的上传处理代码。因为如果您将用户文件直接存储在可公开访问的区域,您的服务器很快就会被丢弃。
  • 文件保存在我的 webroot 上面的目录中。并且该文件夹没有执行权限。

标签: mysql hyperlink phpmailer


【解决方案1】:

为什么要将 HTML 放入需要文件路径的东西中?改为这样做(并注意 Marc B 所说的 - 您应该在某处致电 move_uploaded_file()。)。

$mail->AddAttachment('/home/company/upload/'.$_FILES['rfile']['name'][0]);
$mail->AddAttachment('/home/company/upload/'.$_FILES['rfile']['name'][1]);

【讨论】:

  • @Marc B 谢谢。是的,我试图将带有链接的文件放在错误的位置。不需要在附件上有链接。我认为它适用于:echo "&lt;td&gt;" . "&lt;a href='/home/company/upload/" . $row["cover_path"] . "'&gt;" . $row["cover_path"] . "&lt;/a&gt;&lt;/td&gt;"; 在 PHP 输出表的 while 循环中。
猜你喜欢
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
  • 2015-03-30
相关资源
最近更新 更多