2014-07-08 29 views
5

Sto creando un'applicazione Android che deve essere in grado di inviare file su un server.Sovrascrivi il file sul server (PHP)

Per questo sto usando POST e fopen/fwrite ma questo metodo si aggiunge al file e utilizzando unlink prima di scrivere sul file non ha alcun effetto. (file_put_contents ha lo stesso effetto esattamente)

Questo è quello che ho finora

<?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); 

?> 

Il file verrà correttamente eliminare la sua auto quando non provare a scrivere ad essa dopo, ma se io provo e scrivici, verrà aggiunto.

Qualcuno ha qualche suggerimento sulla sovrascrittura del contenuto del file?

Grazie, Luke.

+2

Nessun modo questo potrebbe accadere. fopen in 'w' mode è" open file, truncate to zero length ". Se si stava aggiungendo, dovresti aprire in modalità 'A' –

risposta

5

Usa wa+ per l'apertura e il troncamento:

$file = fopen($savePath,"wa+"); 

fopen

w +: Aperto per lettura e scrittura; posizionare il puntatore del file all'inizio del file e troncare il file a lunghezza zero. Se il file non esiste, provare a crearlo.

a +: aperto per lettura e scrittura; posiziona il puntatore del file alla fine del file. Se il file non esiste, provare a crearlo.

+0

no, wa + continua ad aggiungersi al file –

+1

Devi fare qualcosa di sbagliato. Come dice il manuale: tronca a 0 lunghezza. – putvande

+0

Ero, errore nella mia applicazione –

3
file_put_contents($savePath,$fileContent); 

sovrascrive il file o creare se non esiste già.

0

Trovato l'errore, ho dimenticato di ripristinare una stringa all'interno della mia applicazione

Problemi correlati