如何在HTML表单中调用PHP函数作为对附件的操作

时间:2016-12-06 22:47:45

标签: php html

我有一个html表单,我有一个PHP函数。我需要html表单中的attachment元素来运行php函数代码,然后发送到电子邮件。我需要解析数据然后发送到电子邮件。附件将是SPA扩展。

以下是表单的代码 -

    <form METHOD = "POST" action="mailto: abc@xyz.com">
Material : 
<input type ="text" name="material number"/> <br>  

Batch Number:
<input type ="text" name= "batch number"/ > <br> 

Processing Stage: 
<input type ="text" name= "Processing State"/ > <br> 

Analysis: 
<input type= "text" name= "Analysis" /> <br> 

Attachment:
<METHOD="post" ACTION="generatePlotForSPA(attachedfile)" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="attachedfile" MAXLENGTH=5000 >  <br>
<input type="submit" value="Submit"/> <br> 
</form>

这是PHP代码 -

<?php

function generatePlotForSPA($source, $targetFile) {

    $sourceFile = fopen($source, "rb");

    fseek($sourceFile, 386);
    $targetOffset = current(unpack("v", fread($sourceFile, 2)));
    if($targetOffset > filesize($source)) {
        return false;
    }
    fseek($sourceFile, 390);
    $dataLength = current(unpack("v", fread($sourceFile, 2)));
    if($dataLength + $targetOffset > filesize($source)) {
        return false;
    }

    fseek($sourceFile, $targetOffset);

    $rawData = fread($sourceFile, $dataLength);
    $rawDataOutputPath = $source . "_raw_data";
    $outputFile = fopen($rawDataOutputPath, "w");
    fwrite($outputFile, $rawData);
    fclose($outputFile);
    $gnuScript = "set terminal png size {width},{height};
        set output '{output}';

        unset key;
        unset border;

    plot '<cat' binary filetype=bin format='%float32' endian=little array=1:0 with lines lt rgb 'black';";

    $targetScript = str_replace("{output}", $targetFile, $gnuScript);
    $targetScript = str_replace("{width}", 500, $targetScript);
    $targetScript = str_replace("{height}", 400, $targetScript);
    $gnuPath = "gnuplot";
    $outputScript = "cat \"" . $rawDataOutputPath . "\" | " . $gnuPath . " -e \"" . $targetScript . "\"";
    exec($outputScript);
    if(!file_exists($targetFile)) {
        return false;
    }
    return true;
}
?>

有关如何连接两个

的任何建议

2 个答案:

答案 0 :(得分:0)

你需要在action="the_php_file.php"中调用php文件 然后在文件本身中包含要执行的邮件

答案 1 :(得分:0)

html表单动作中的函数调用是面向对象的php的特性。你不能在原始的PHP中使用它.. 你可以在下面这样做。

首先创建2个文件 1- something.php 2- processing.php

而不是在something.php中创建表单 并给出像

这样的动作
<form METHOD = "POST" action="processing.php">

并将php代码放在processing.php文件中。 通过

接收表单输入字段中的所有值
$name = $_POST['name'];

和用户php mailto函数在电子邮件地址中发送邮件,您可以对收到的数据做任何事情。