覆盖服务器上的文件(PHP)

Luk*_*ing 6 php fopen overwrite fwrite unlink

我正在制作一个Android应用程序,需要能够将文件推送到服务器上.

为此,我正在使用POST,fopen/fwrite但此方法仅附加到文件并unlink在写入文件之前使用无效.(file_put_contents具有完全相同的效果)

这就是我到目前为止所拥有的

<?php
$fileContent = $_POST['filecontent'];

$relativePath = "/DatabaseFiles/SavedToDoLists/".$_POST['filename'];
$savePath = $_SERVER["DOCUMENT_ROOT"].$relativePath; 

unlink($savePath);

$file = fopen($savePath,"w");
fwrite($file,$fileContent);
fclose($file);

?>
Run Code Online (Sandbox Code Playgroud)

当我不尝试写入文件时,该文件将正确删除它自己,但如果我尝试写入它,它将附加.

有人有任何关于覆盖文件内容的建议吗?

谢谢,卢克.

put*_*nde 6

使用wa+打开和截断:

$file = fopen($savePath,"wa+");
Run Code Online (Sandbox Code Playgroud)

FOPEN

w +:开放阅读和写作; 将文件指针放在文件的开头,并将文件截断为零长度.如果该文件不存在,请尝试创建它.

a +:开放阅读和写作; 将文件指针放在文件的末尾.如果该文件不存在,请尝试创建它.


and*_*rew 5

file_put_contents($savePath,$fileContent);
Run Code Online (Sandbox Code Playgroud)

如果文件不存在,将覆盖文件或创建。