我正在制作一个需要能够将文件推送到服务器上的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);
?>
当我不尝试写入文件时,该文件将正确删除它的自我,但是如果我尝试写入它,它将被附加。
有人有任何关于覆盖文件内容的建议吗?
谢谢,卢克。
答案 0 :(得分:6)
使用wa+
打开和截断:
$file = fopen($savePath,"wa+");
w + :开放阅读和写作;将文件指针放在文件的开头,并将文件截断为零长度。如果该文件不存在,请尝试创建它。
a + :开放阅读和写作;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。
答案 1 :(得分:4)
file_put_contents($savePath,$fileContent);
将覆盖文件或创建(如果尚未存在)。
答案 2 :(得分:1)
阅读本文将有助于显示fopen的所有选项
答案 3 :(得分:0)
发现错误,我忘了重置我的应用程序中的字符串