我有一個網站,我希望用戶能夠下載一些數據作爲文本文件,而不永久保存在我的服務器上的文件。我嘗試的方法是使用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:
//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);
但是,當我試圖刪除第二個(或以上)以後通過此:
if (($_POST)&&($_POST['submit']=='removeExport')){
$file = $_POST['file'];
unlink($file); ///works when using an already-existing file in the same directory ... unlink('test.txt');
}
我得到錯誤。我想知道的第一件事是如果我以正確的方式接近這一點。如果沒有,有沒有更好的方法來做到這一點?然後我想知道的第二件事是爲什麼我得到這個錯誤,以及爲了使它工作需要改變。
您編寫的代碼允許刪除任何文件,包括具有此代碼的腳本。 – Augwa
有沒有另一種方法來生成一個txt文件,允許用戶下載它,然後刪除它? – Sadie
我不明白你爲什麼需要存儲任何文件。 – Augwa