私は、ユーザがファイルを私のサーバに永久保存することなく、テキストファイルとしてデータをダウンロードできるようにしたいサイトがあります。私が試みているアプローチは、JavaScriptを使用してPOSTを送信し、PHPを使用してテキストファイルを生成して保存することです。成功すると、JavaScriptはそのファイルを別のウィンドウで開きます。数秒待ってから、削除するファイルとともにPOSTを送信します。一時的なtxtファイルを生成して削除しようとしています
私はそのほとんどが動作していますが、何らかの理由でファイルを削除しようとすると、エラーが発生します。そのようなファイルやディレクトリはありません。私はなぜ、特に同じディレクトリ内の削除にテストファイルを使用するとうまく動作するのかわからない。ここで私はjavascriptの側に使用してんだよ:
////CREATE FILE
function exportGroup() {
$.post("../Modules/Export_Mod/export_mod.php",
{ submit:'export',
groupIndex: groupSelect.value,
userRole: 'admin',
serial: <?php echo $serial;?>
},
function(data,status){
//open created file in new window
window.open("../Modules/Export_Mod/"+data);
removeExport(data);
});
};
//////REMOVE FILE
function removeExport(filename) {
///After 1 second, send post to delete file
setTimeout(function() {
$.post("../Modules/Export_Mod/export_mod.php",
{ submit:'removeExport',
file: filename
},
function(data,status){
data;
});
}, 1000);
}
と私のPHP:
if (($_POST)&&($_POST['submit']=='removeExport')){
$file = $_POST['file'];
unlink($file); ///works when using an already-existing file in the same directory ... unlink('test.txt');
}
:
//I'm creating the file successfully with this
...
$filename = $groupName."_group_export.txt";
$content = $header.$dataStr;
$strlength = strlen($content);
$create = fopen($filename, "w");
$write = fwrite($create, $content, $strlength);
$close = fclose($create);
しかし、私は、後でこれを使用して、第2の(またはそれ以上)を削除しようとすると、
エラーが発生します。最初に私がこれに正しい方法で近づいているのが不思議です。そうでない場合は、より良い方法がありますか?次に、私がこのエラーを受けている理由と、それを機能させるために変更する必要があるのかと思います。
あなたが書いたコードは、このコードを持つスクリプトを含むすべてのファイルを削除できるようにしています。 – Augwa
別の方法でtxtファイルを生成し、ユーザーがダウンロードして削除できるようにしますか? – Sadie
なぜファイルを保存する必要があるのか分かりません。 – Augwa