2014-07-08 22 views
5

Tôi đang tạo một ứng dụng Android cần để có thể đẩy các tập tin lên máy chủ.Ghi đè lên tập tin trên máy chủ (PHP)

Vì điều này tôi đang sử dụng POSTfopen/fwrite nhưng phương pháp này chỉ thêm vào tệp và sử dụng unlink trước khi ghi vào tệp không có hiệu lực. (file_put_contents có tác dụng chính xác cùng)

Đây là những gì tôi có cho đến nay

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

?> 

Các tập tin sẽ xóa một cách chính xác tự của nó khi tôi không cố gắng và ghi vào nó sau nhưng nếu tôi cố gắng và viết cho nó, nó sẽ nối thêm.

Bất kỳ ai có bất kỳ đề xuất nào về ghi đè nội dung tệp?

Cảm ơn, Luke.

+2

Không có cách nào điều này có thể xảy ra. fopen trong chế độ 'w' là" mở tập tin, cắt ngắn thành 0 ". Nếu nó đã được bổ sung, bạn sẽ phải mở trong chế độ 'a' –

Trả lời

5

Sử dụng wa+ mở và cắt xén:

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

fopen

w +: mở để đọc và viết; đặt con trỏ tập tin vào đầu tập tin và cắt bớt tập tin về độ dài bằng không. Nếu tệp không tồn tại, hãy cố gắng tạo tệp.

a +: Mở để đọc và viết; đặt con trỏ tập tin vào cuối tập tin. Nếu tệp không tồn tại, hãy cố gắng tạo tệp.

+0

nope, wa + vẫn nối thêm vào tệp –

+1

Bạn phải làm điều gì đó sai. Theo hướng dẫn sử dụng nói: nó cắt ngắn 0 độ dài. – putvande

+0

Tôi bị lỗi trong đơn đăng ký –

3
file_put_contents($savePath,$fileContent); 

Sẽ ghi đè tệp hoặc tạo nếu chưa tồn tại.

0

Tìm thấy lỗi, tôi quên để thiết lập lại một chuỗi bên trong ứng dụng của tôi

Các vấn đề liên quan