2015-06-27 2 views
0

У меня есть следующий AJAX скрипт, который открывает файл и читать его содержание каждый второй:AJAX прочитать файл и удалить содержимое (не сам файл)

<script> 
$(document).ready(function() { 
    var filename = "/my/file/location.txt; 
    console.log(filename); 
    setTimeout(functionToLoadFile, 10); 
    function functionToLoadFile(){ 
      $.ajax({ 
       url: filename, 
       cache: false, 
       success: function(data) { 
        $('#content').append(data); 
        setTimeout(functionToLoadFile, 1000); 
       }, 
       error: function() { 
        $('#content').html("error receiving file"); 
       }, 
      }); 
    } 
}); 
</script> 

Это работает нормально, но я хочу его также стирайте содержимое файла каждый раз, когда функция запускается. Как это можно сделать?

Заранее спасибо.

+2

Нельзя сделать с помощью кода клиента, вам нужно будет сделать вызов ajax на сервер, а затем сделать это там. – adeneo

+0

Так что в основном я могу сделать вызов AJAX файлу PHP, который удалит содержимое файла. Это тоже похоже на хорошее решение. Большое спасибо. – Neekoy

ответ

1

Что вы делаете, это отправить запрос AJAX с помощью Get на сервер. Сервер отвечает этим, загружая содержимое файла и обслуживая его напрямую.

Это можно рассматривать как угрозу безопасности, потому что каждый может перейти к этому файлу непосредственно из своего браузера и прочитать его.

Поскольку файл на самом деле не находится на вашем локальном жестком диске, и вы не загружаете файл, но вместо этого высылаете HTTP-запрос, который заставляет сервер загружать файл и возвращать его содержимое, вы не можете удалить его из сторона клиента.

Что вы можете сделать, это добавить метод на стороне сервера, deleteFile(path), а затем отправить запрос POST на этот URL. Это позволит серверу удалить файл. Вероятно, вы также захотите добавить некоторую форму безопасности.

+0

Благодарим вас за информацию. В этом случае я напишу файл PHP, чтобы удалить содержимое и вызвать его через функцию AJAX. Кроме того, если вы не возражаете, не могли бы вы рассказать о части безопасности? Я хотел бы узнать больше о том, что можно сделать. – Neekoy

+1

Предоставление метода в PHP API, который может быть вызван с регулярным HTTP-сообщением, не является безопасным. Каждый может вызвать ваш метод сервера без каких-либо проверок. Я не эксперт в PHP, но в мире .NET вы должны позволить пользователю пройти аутентификацию, а затем присоединить токен к каждому запросу, который будет проверять пользователя. Я уверен, что что-то подобное существует для PHP, но это вопрос сам по себе. –

Смежные вопросы