首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eurekalog "HTTP upload":如何发送程序名称?

Eurekalog "HTTP upload":如何发送程序名称?
EN

Stack Overflow用户
提问于 2014-09-30 07:24:54
回答 2查看 145关注 0票数 0

在几个Delphi项目中,我将Eurekalog设置为通过“XE2 upload”发送错误报告,效果很好,因为我使用PHP脚本捕获错误报告,将其保存在一个目录中,并通过电子邮件发送给我:

代码语言:javascript
复制
<?php

require 'PHPMailerAutoload.php';

foreach ($_FILES as $key => $value)
{
    $uploaded_file = $_FILES[$key]['tmp_name'];
    $server_dir = 'upload/';
    $server_file = $server_dir . date("Y-m-d H-i-s ") . basename($_FILES[$key]['name']);
    $ext = strtoupper(pathinfo($server_file, PATHINFO_EXTENSION));
    if ($ext != 'EL')
    {
        continue;
    }
    if (move_uploaded_file($uploaded_file, $server_file))
    {
        echo '<html>';
        echo '<head>';
        echo '<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=UTF-8">';
        echo '<title>Bug submission</title>';
        echo '</head>';
        echo '<body>';
        echo 'Thank you!<br />';
        echo "<!--\n";
        echo "<EurekaLogReply>Thank you for your feedback!</EurekaLogReply>\n";        
        echo "-->";
        echo '</body>';
        echo '</html>';

        SendBugReportMessage('auserofmyprogram@usersofmyprogram.com',
                             'A User of my program',
                             'Eurekalog Bug Report',
                             'This is a bug report from Eurekalog.',
                             'eurekalog.bugreport@mysite.com',
                             $server_file,
                             basename($server_file)
                             );
    }    
}

function SendBugReportMessage($AFrom, $AFromName, $ASubject, $ABodyText, $ARecipient, $AFileToAttach, $ANameOfFile)
{
    $email = new PHPMailer();
    $email->From      = $AFrom;
    $email->FromName  = $AFromName;
    $email->Subject   = $ASubject;
    $email->Body      = $ABodyText;
    $email->AddAddress($ARecipient);
    $file_to_attach = $AFileToAttach;
    $email->AddAttachment($file_to_attach, $ANameOfFile);
    return $email->Send();
}

?>

现在,我有几个程序使用这个非常相同的PHP脚本来上传它们的bug报告。但是,发送到此PHP脚本的错误报告的名称始终为"BugReport“。那么,在PHP脚本中,我如何获取发送错误报告的程序的名称,以便通过附加程序名称并在邮件主题中包含程序名称来保存它?或者,有没有可能通过在Delphi代码一侧实现一些东西来解决问题?还是在Eurekalog?

Eurekalog版本为7.1.0.0

EN

回答 2

Stack Overflow用户

发布于 2014-10-07 22:46:57

您可以使用web-field来实现此目的。EurekaLog具有OnCustomWebFieldsRequest事件处理程序,允许您为任何基于web的发送方法(如HTTP upload、使用HTTP API的bug跟踪器等)更改web字段。

分配这样的事件处理程序:

代码语言:javascript
复制
uses
  EEvents;

procedure AddApplicationName(const ACustom: Pointer; ASender: TObject { TELWebSender }; AWebFields: TStrings; var ACallNextHandler: Boolean);
begin
  AWebFields.Values['Application'] := AnsiLowerCase(ExtractFileName(ParamStr(0)));
end;

initialization
  RegisterEventCustomWebFieldsRequest(nil, AddApplicationName);
end.

然后,您可以从脚本访问新的"Application“字段。对于PHP,它将是$_REQUEST“应用程序”或$_POST“应用程序”

票数 1
EN

Stack Overflow用户

发布于 2014-10-07 23:20:50

对于这个特定的任务,您还可以使用OnCustomFileName event handler来更改用于发送的文件名。您对AFileType = ftZIP (如果要发送打包的.elp报告)或AFileType = ftBugReport (如果要发送未打包的.el报告)感兴趣。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26110444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档