2014-11-26 2 views
0

У меня есть приложение, которое создает файл JSON и страницу PHP, которая использует этот JSON-файл для обновления базы данных. Теперь я хочу, чтобы приложение и PHP-страница запускались на двух разных машинах. Итак, я запустил приложение на компьютере 1, а файл JSON, созданный из приложения, хранится в каталоге «Public», который находится за пределами корня файла PHP. Как я могу гарантировать, что PHP сможет получить доступ к этому файлу или, где я могу, и как я могу сохранить этот JSON-файл, чтобы PHP мог его использовать?Доступ к файлу JSON Вне корневого каталога PHP

JSON Структура из C#:

public class User_Group 
{ 
    public int ID_UserGroup { get; set; } 
    public string Name_UserGroup { get; set; } 
    public int UserID { get; set; } 
} 
public class User_Role 
{ 
    public int ID_User { get; set; } 
    public string Role_User { get; set; } 
    public string User_Role_Description { get; set; } 
    public List<User_Group> UserGroup { get; set; } 
} 

public class Stand_Orte 
{ 
    public int ID { get; set; } 
    public string Bezeichnung { get; set; } 
    public List<Modul> modul { get; set; } 
} 

public class Modul 
{ 
    public string ID { get; set; } 
    public string Seriennummer { get; set; } 
    public string Bezeichnung { get; set; } 
    public string StandortID { get; set; } 
    public List<Mess_Kanal> MessKanal { get; set; } 
} 

public class Mess_Kanal 
{ 
    public string ID { get; set; } 
    public string ModulID { get; set; } 
    public List<LogMess_Daten> LogMessDaten { get; set; } 
} 

public class LogMess_Daten 
{ 
    public string KanalID { get; set; } 
    public string Zeitstempel { get; set; } 

} 


public class RootObject 
{ 
    public int ID_Project { get; set; } 
    public string Name_Project { get; set; } 
    public int Receiver_ID { get; set; } 
    public string Receiver_Name { get; set; } 
    public int UserID { get; set; } 
    public User_Role UserRole { get; set; } 
    public Stand_Orte Standorte { get; set; } 
} 

PHP Decode:

$jsonData = file_get_contents("JSON_superproject.json"); 
$phpArray = json_decode($jsonData); 

если "JSON_superproject.json" сохраняется в течение, например, K: \ Public \ ABC и я стараюсь использовать его как : [email protected]("K:\Public\ABC\JSON_superproject.json"); не работает. Выдает сообщение об ошибке, что файл в K: \ Public \ ABC \ JSON_superproject.json отсутствует в корневом каталоге.

Как это исправить? Любые идеи?

Спасибо, Revathy

+0

Попробуйте разместить ту же директиву, где размещен сайт. – dotnetstep

+0

, но этот каталог недоступен со второго компьютера, на котором выполняется приложение. –

+0

file_get_contents выполняется на стороне сервера, а не на стороне клиента. Если вы сохранили этот файл где-то еще, тогда доступ к нему невозможно. – dotnetstep

ответ

0

Я думаю, что у вас есть по крайней мере, следующие параметры:

  1. Создать каталог внутри дерева, которое доступно для PHP скрипта и поделиться им с первой машиной и обновите первое приложение, чтобы поместить файл туда.
  2. Создайте задание планировщика заданий, которое регулярно копирует файл из Public в место внутри дерева, доступное для скрипта PHP.
  3. Скопируйте файл на второй компьютер с помощью HTTP POST в PHP-скрипт, который просто сохраняет файл для дальнейшей обработки или напрямую обрабатывает его.
  4. Сделать файл доступным через Интернет (т. Е. Запустить новый экземпляр веб-сервера, корневой каталог которого представляет собой каталог с файлом) и получить доступ к файлу через http/https. Неважно, будет ли файл обслуживаться с первого или со второго сервера.
  5. Отказ от функции безопасности PHP, которая запрещает доступ к файлам вне корня PHP (см. http://php.net/manual/en/ini.core.php#ini.open-basedir). В принципе, этот вариант не является хорошим выбором.
+0

отлично, спасибо за разные варианты. Я попробую их ... !! ° - ° –

+0

Я только что добавил новый вариант (3). – alik

+0

это потрясающе. Большое спасибо за ваши идеи. Я пытаюсь использовать REST сейчас, чтобы напрямую передавать данные JSON в MYSQL. !! все эти вещи просто подавляющие, хотя.! --__-- –

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