草庐IT

php - pdf不作为附件发送

coder 2024-04-18 原文

我已经创建了一个 php 发送电子邮件脚本来通过 php mailer 发送 pdf 以及附件我在发送电子邮件时无法作为附件发送附件文件已损坏没关系请查看我的代码并让我知道我做错了什么为什么附件发送不正确

这是我的html

<form method="POST" action="details.php?id=<?php echo $_GET['id']; ?>" enctype="multipart/form-data">
    <div class="col col_center">
        <input name="first_name" class="firstname text_input" type="text" placeholder="First Name">
    </div>
    <div class="col col_center">
        <input name="last_name" class="lastname text_input" type="text" placeholder="Last Name">
    </div>
    <div class="col col_center">
        <input name="email" class="email_address text_input" type="email" placeholder="Email Address">
    </div>
    <div class="col col_center">
        <input name="phone" class="phone text_input" type="tel" placeholder="Phone (with country code)">
    </div>
    <input type="hidden" name="title" value="<?php echo $dt['job_title']; ?>" />
    <div class="btn_row">
        <input type="file" value="Attach CV" class="button blue" name="resume" style="width:auto;">
    </div>
    <div class="btn_row">
        <input type="submit" value="Send" name="submit_resume" class="button" style="width:auto;">
    </div>
</form>

这是我的php文件

$path     = "./uploads/";
    $head     = $_FILES["resume"]["name"];
    $headtype = $_FILES["resume"]["type"];
    $headtemp = $_FILES["resume"]["tmp_name"];

    move_uploaded_file($headtemp, $path.$head);

 $mail = new PHPMailer;
    $client_email = $dt[3];
    $mail->setFrom('noreply@xpertius.com', 'No reply');
    $mail->addAddress("$client_email", 'Xpertius');
    $mail->Subject = "Thank You For Appling - '".$job_title."'";
    $mail->msgHTML($htmlbody);
    $uploadfile1 = tempnam(sys_get_temp_dir(), sha1($_FILES['resume']['name']));
    move_uploaded_file($_FILES['resume']['tmp_name'], $uploadfile1);
    $mail->addAttachment($uploadfile1, $head);

我也试过将它保存到 y 数据库,文件保存正确但没有发送,因为电子邮件中的附件链接已损坏

最佳答案

您尝试移动您上传的文件:

move_uploaded_file($_FILES['resume']['tmp_name'], $uploadfile1);

但是你已经把它搬进来了:

move_uploaded_file($headtemp, $path.$head);

很可能,您尝试附加的文件是空的(因为它不再存在),检查电子邮件中的大小,或者在附加之前检查它是否仍然存在。

因此,您应该将 $uploadfile1 定义为:

$uploadfile1 = $path.$head;

代替您的第二个 move_uploaded_file。

关于php - pdf不作为附件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40043436/

有关php - pdf不作为附件发送的更多相关文章

  1. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  2. ruby-on-rails - Prawn PDF : I need to generate nested tables - 2

    我需要一个表,其中行实际上是2行表,一个嵌套表是..我怎样才能在Prawn中做到这一点?也许我需要延期..但哪一个? 最佳答案 现在支持子表:Prawn::Document.generate("subtable.pdf")do|pdf|subtable=pdf.make_table([["sub"],["table"]])pdf.table([[subtable,"original"]])end 关于ruby-on-rails-PrawnPDF:Ineedtogeneratenested

  3. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  4. ruby - 字符串文字中的转义状态作为 `String#tr` 的参数 - 2

    对于作为String#tr参数的单引号字符串文字中反斜杠的转义状态,我觉得有些神秘。你能解释一下下面三个例子之间的对比吗?我特别不明白第二个。为了避免复杂化,我在这里使用了'd',在双引号中转义时不会改变含义("\d"="d")。'\\'.tr('\\','x')#=>"x"'\\'.tr('\\d','x')#=>"\\"'\\'.tr('\\\d','x')#=>"x" 最佳答案 在tr中转义tr的第一个参数非常类似于正则表达式中的括号字符分组。您可以在表达式的开头使用^来否定匹配(替换任何不匹配的内容)并使用例如a-f来匹配一

  5. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  6. ruby-on-rails - 应用程序的名称是否可以作为变量使用? - 2

    当我创建一个Rails应用程序时,控制台:railsnewfoo我的代码可以使用字符串“foo”吗?puts"Yourapp'snameis"+app_name_bar 最佳答案 Rails.application.class将为您提供应用程序的全名(例如YourAppName::Application)。从那里您可以使用Rails.application.class.parent获取模块名称。 关于ruby-on-rails-应用程序的名称是否可以作为变量使用?,我们在StackOve

  7. ruby-on-rails - 使用作为方法的值在 ruby​​ 中搜索哈希 - 2

    我在搜索我的值是方法的散列时遇到问题。我只是不想运行plan_type与键匹配的方法。defmethod(plan_type,plan,user){foo:plan_is_foo(plan,user),bar:plan_is_bar(plan,user),waa:plan_is_waa(plan,user),har:plan_is_har(user)}[plan_type]end目前如果我传入“bar”作为plan_type,所有方法都会运行,我怎么能只运行plan_is_bar方法呢? 最佳答案 这个变体怎么样?defmethod

  8. ruby - 无法在 Ruby 中将 ffmpeg 作为子进程运行 - 2

    我正在尝试使用以下代码通过将ffmpeg实用程序作为子进程运行并获取其输出并解析它来确定视频分辨率:IO.popen'ffmpeg-i'+path_to_filedo|ffmpegIO|#myparsegoeshereend...但是ffmpeg输出仍然连接到标准输出并且ffmepgIO.readlines是空的。ffmpeg实用程序是否需要一些特殊处理?或者还有其他方法可以获得ffmpeg输出吗?我在WinXP和FedoraLinux下测试了这段代码-结果是一样的。 最佳答案 要跟进mouviciel的评论,您需要使用类似pope

  9. ruby - 是否可以在不实际发送或读取数据的情况下查明 ruby​​ 套接字是否处于 ESTABLISHED 或 CLOSE_WAIT 状态? - 2

    s=Socket.new(Socket::AF_INET,Socket::SOCK_STREAM,0)s.connect(Socket.pack_sockaddr_in('port','hostname'))ssl=OpenSSL::SSL::SSLSocket.new(s,sslcert)ssl.connect从这里开始,如果ssl连接和底层套接字仍然是ESTABLISHED,或者它是否在默认值7200之后进入CLOSE_WAIT,我想检查一个线程几秒钟甚至更糟的是在实际上不需要.write()或.read()的情况下关闭。是用select()、IO.select()还是其他方法完成

  10. ruby-on-rails - CarrierWave - PDF - 只选择第一页 - 2

    我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful

随机推荐