WordPress帖子应该处理样本数据(上传为PDF文件),并在下面的同一帖子上显示数据(经过一些操作和重新格式化)。
...
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="filepdf" />
<input type="submit" name="submit" value="Upload data samples (.pdf file)" />
</form>
...
我使用
PHP code snippets (Insert PHP)
包含PHP代码的插件。
...
[insert_php]
if(isset($_FILES[\'filepdf\'])) {
$mTime = number_format(microtime(true), 3, \'.\', \'\');
$file_name = $_FILES[\'filepdf\'][\'name\'];
$file_size = $_FILES[\'filepdf\'][\'size\'];
$file_tmp = $_FILES[\'filepdf\'][\'tmp_name\'];
$file_ext = strtolower(end(explode(\'.\', $_FILES[\'filepdf\'][\'name\'])));
...
$cmd = "./mybinary \'$file_name\'";
$outfile = tempnam("/tmp", "cmd");
$errfile = tempnam("/tmp", "cmd");
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("file", $outfile, "w"),
2 => array("file", $errfile, "w")
);
move_uploaded_file($file_tmp, $file_name);
$proc = proc_open($cmd, $descriptorspec, $pipes);
...
[/insert_php]
几个小时的故障排除,但我不知道为什么会发生这种情况。。。当我上传PDF文件时,二进制文件
mybinary
在proc\\u open()中,有时会触发两次(间隔+/-200 ms)。假设95%的请求工作正常,但有5%由于这些双重触发器而失败。似乎(?)使用Chrome的移动Android设备比其他操作系统和/或浏览器受到的影响更大(但对此并不确定)。这至少是Apache的访问权限。日志显示。目前的情况是不可接受的,因为二进制文件使用PHP代码生成的毫秒时间代码(见上文),这会打乱整个过程。
问题:
1。Chrome发送两个请求,我的假设正确吗
2。如果是,为什么
3。我怎样才能避免呢?
我在google上搜索了一下,确实,proc\\u open()有时会触发两次,但我没有找到任何解决方案。
此外,我不知道这是否与WordPress相关,或者是PHP主题。