2013-10-04 5 views
3

SQL DB가 거의없는 안드로이드 앱이 있습니다. 나는 백업을 제공하고 내 애플 리케이션에서 기능을 복원합니다. 그래서 사용자가 백업을 선택하면 SQL DB 파일이 서버로 보내지고 복원시 SQL DB 파일이 서버에서 가져와 장치로 복원됩니다. 문제는 내가 링크가있는 사람이 그 파일에 액세스 할 수 있기 때문에 서버에서 파일을 저장해야하는 특정 방법이 있는지 모르겠다. 서버에서 간단한 PHP 스크립트를 사용하고 있기 때문이다.서버에 SQL DB를 안전하게 저장하는 방법

<?php 

    $file_path = "uploads/"; 

    $file_path = $file_path . basename($_FILES['uploaded_file']['name']); 
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) { 
    echo "success"; 
    } else{ 
    echo "fail"; 
    } 

?> 

아무에게도 원하는 결과를 얻기 위해 따라야 할 접근 방법을 안내해 줄 수 있습니까?

감사합니다.

답변

1

글쎄, 업로드 된 파일을 공개 디렉토리로 옮길 필요가 없습니다. 사용자가 백업을 복원하려면 백업 파일을 가져 와서 PHP 파일에 액세스해야합니다.

backup.php

$file_path = "../uploads/"; 

$file_path = $file_path . basename($_FILES['uploaded_file']['name']); 
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) { 
    echo "success"; 
} else{ 
    echo "fail"; 
} 

restore.php

$filePath = "../uploads/some_uploaded_db.sqlite"; 
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename='.basename($filePath)); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($filePath)); 
ob_clean(); 
flush(); 
readfile($filePath); 
exit(); 
관련 문제