Php 下载GPG文件时出现错误filesize()stat
我的PHP程序应该将一些数据写入文本文件,并使用gnupg对文件进行加密。当用户按下载时,程序应下载扩展名为.GPG的加密文件 我可以成功地加密和解密文件。但我在加密文件中看到html代码和错误。但在我解密文件后它就消失了。但它仍然被认为是一个bug,是吗?有人能帮忙吗 我的HTML代码的一部分:Php 下载GPG文件时出现错误filesize()stat,php,encryption,gnupg,filesize,Php,Encryption,Gnupg,Filesize,我的PHP程序应该将一些数据写入文本文件,并使用gnupg对文件进行加密。当用户按下载时,程序应下载扩展名为.GPG的加密文件 我可以成功地加密和解密文件。但我在加密文件中看到html代码和错误。但在我解密文件后它就消失了。但它仍然被认为是一个bug,是吗?有人能帮忙吗 我的HTML代码的一部分: <div id="layoutSidenav_content"> <main> <div class="cont
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<h1 class="mt-4">Muat Turun Rekod</h1>
<div class="card mb-4">
<div class="card-header">
<i class="fa fa-table" aria-hidden="true" style="font-size:18px"></i>
Rekod untuk Dimuat Turun
</div>
<div class="card-body-tbm">
<form method="post" action="tryExport.php">
<div class=" table-responsive">
<table id="example" class="table table-bordered" style="width:100%">
<thead>
<tr>
<th>Bil.</th>
<th>ID </th>
<th>Nama</th>
<th>Jabatan</th>
<th>PTJ</th>
<th>Peringkat</th>
<th>Peranan</th>
<th>Modul</th>
<th>Capaian</th>
<th>Kelulusan Pegawai Pengawal</th>
<th>Catatan Pegawai Pengawal</th>
<th>Kelulusan BN Pengesah</th>
<th>Catatan BN Pengesah</th>
<th>Muat Turun <input type="checkbox"
id="cbgroup1_master" onchange="togglecheckboxes(this,'chkbox[]')">
</th>
</tr>
</thead>
<tbody>
<?php
$j=0;
$j=0;
$result= query("SELECT NAME, NRIC, sc_jabatan.PERIHALJABATAN AS JABATAN, sc_ptj.PERIHALPTJ AS PTJ, sc_module.ABBRV AS MODULE, SC_PROGRAM,
ID_CAPAIAN_D, gd1.PERIHALCODE AS PERINGKAT, gd2.PERIHALCODE AS PERANAN, REMARK_APPROVE, REMARK_VERIFY
FROM user_main
JOIN user_capaian ON user_main.NRIC=user_capaian.USER_MAIN_NRIC
JOIN user_capaian_d ON user_main.NRIC=user_capaian_d.USER_MAIN_NRIC AND user_capaian.ID_CAPAIAN=user_capaian_d.ID_CAPAIAN
JOIN gc_d gd1 ON gd1.ID=user_capaian.GC_LEVEL
JOIN gc_d gd2 ON gd2.ID=user_capaian.GC_ROLE
JOIN sc_module ON sc_module.ID=user_capaian_d.SC_MODULE
JOIN user_history ON user_main.NRIC=user_history.USER_MAIN_NRIC AND
user_capaian.USER_HISTORY_ID=user_history.ID AND user_capaian_d.USER_HISTORY_ID=user_history.ID
JOIN sc_jabatan ON sc_jabatan.ID=user_capaian.SC_JABATAN
JOIN sc_ptj ON sc_ptj.ID=user_capaian.SC_PTJ
WHERE user_capaian_d.F_FILESTATUS='N' AND
user_history.F_APPROVE=1 AND
user_history.F_VERIFY=1 AND
GC_NEGERI = '{$_SESSION['STATE']}'
ORDER BY user_capaian.ID_CAPAIAN");
$count = mysqli_num_rows($result);
while($row = fetch_array($result))
{
echo "<tr><td>";
echo $j+1;
echo "</td>";
echo "<td>";
echo $row["NRIC"];
echo "</td>";
echo "<td>";
echo $row["NAME"];
echo "</td>";
echo "<td>";
echo $row["JABATAN"];
echo "</td>";
echo "<td>";
echo $row["PTJ"];
echo "</td>";
echo "<td>";
echo $row["PERINGKAT"];
echo "</td>";
echo "<td>";
echo $row["PERANAN"];
echo "</td>";
echo "<td>";
echo $row["MODULE"];
echo "</td>";
echo "<td>";
echo $row["SC_PROGRAM"];
echo "</td>";
echo "<td>";
echo '<input type="checkbox" name="chkboxapp[]" disabled="disabled" checked>';
echo "</td>";
echo "<td>";
echo $row["REMARK_APPROVE"];
echo "</td>";
echo "<td>";
echo '<input type="checkbox" name="chkboverr[]" disabled="disabled" checked>';
echo "</td>";
echo "<td>";
echo $row["REMARK_VERIFY"];
echo "</td>";
echo "<td>";
echo '<input type="checkbox" name="chkbox[]" class="cbgroup1" value="'.$row['ID_CAPAIAN_D'].'">';
echo "</td>";
$j++;
}
?>
</tbody>
<tfoot>
<tr>
<th>Bil.</th>
<th>ID </th>
<th>Nama</th>
<th>Jabatan</th>
<th>PTJ</th>
<th>Peringkat</th>
<th>Peranan</th>
<th>Modul</th>
<th>Capaian</th>
<th>Kelulusan Pegawai Pengawal</th>
<th>Catatan Pegawai Pengawal</th>
<th>Kelulusan BN Pengesah</th>
<th>Catatan BN Pengesah</th>
<th>Muat Turun <input class="form-check-input-insideHeader" type="checkbox"
id="cbgroup1_master" onchange="togglecheckboxes(this,'chkbox[]')">
</th>
</tr>
</tfoot>
</table>
<input type="submit" name="export" value="Muat Turun" class="btn btn-info float-right" />
</div>
</form>
</div>
</div>
<div class="card mb-4">
<div class="card-header">
<i class="fa fa-table" aria-hidden="true" style="font-size:18px"></i>
Rekod Telah Dimuat Turun
</div>
<div class="card-body-tbm">
<div class=" table-responsive">
<table id="example1" class="table table-bordered" style="width:100%">
<thead>
<tr>
<th>Bil.</th>
<th>ID </th>
<th>Nama</th>
<th>Jabatan</th>
<th>PTJ</th>
<th>Peringkat</th>
<th>Peranan</th>
<th>Modul</th>
<th>Capaian</th>
<th>Kelulusan Pegawai Pengawal</th>
<th>Catatan Pegawai Pengawal</th>
<th>Kelulusan BN Pengesah</th>
<th>Catatan BN Pengesah</th>
</tr>
</thead>
<tbody>
<?php displayExportedRecord() ?>
</tbody>
<tfoot>
<tr>
<th>Bil.</th>
<th>ID </th>
<th>Nama</th>
<th>Jabatan</th>
<th>PTJ</th>
<th>Peringkat</th>
<th>Peranan</th>
<th>Modul</th>
<th>Capaian</th>
<th>Kelulusan Pegawai Pengawal</th>
<th>Catatan Pegawai Pengawal</th>
<th>Kelulusan BN Pengesah</th>
<th>Catatan BN Pengesah</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</main>
</div>
我得到的错误是:
Warning: filesize(): stat failed for ./uploads/./uploads/10_60002_SPI_20201215112335.gpg in /var/www/html/isams/tryExport.php on line <i>277</i></th></tr>
Warning: readfile(./uploads/./uploads/10_60002_SPI_20201215112335.gpg): failed to open stream: No such file or directory in /var/www/html/isams/tryExport.php on line <i>278</i></th></tr>
警告:filesize():第277行的/uploads//uploads/10_60002_SPI_20201215112335.gpg中的stat失败
警告:readfile(./uploads//uploads/10_60002_SPI_20201215112335.gpg):无法打开流:第278行的/var/www/html/isams/tryExport.php中没有此类文件或目录
问题已解决。刚意识到错误中的文件夹路径不正确。我从以下位置删除下载代码处的文件夹路径:
$file='./uploads/' . $filename . '.gpg';
致:
谢谢大家!:) 将您的相关代码和准确的错误消息粘贴到此处。@rrd我已编辑我的帖子。是因为文件夹路径不正确吗?无论如何,提前谢谢!非常确定
/uploads//uploads/
是不正确的,应该只是一个/uploads/
…对吧?@CBroe我刚刚意识到这一点。非常感谢你!
$file='./uploads/' . $filename . '.gpg';
$file= $filename . '.gpg';