Работает ли функция PHP file_exists в Google App Engine?

Когда я развертываю php-файл в GAE, file_exists функция не работает. Если я тестирую тот же самый код локально со своего компьютера, используя Google App Engine Launcher, это работает. Вот файл PHP и app.yaml

indexTest.php

<?php
DEFINE("TESTFILE", 'testfile.txt');
echo TESTFILE.'<br>';

$doesTheFileExist = file_exists(TESTFILE);
echo '$doesTheFileExist: ' . $doesTheFileExist. '<br>';

if (!file_exists(TESTFILE)) {
echo 'I guess it doesnt exist';
}

RETURN;

app.yaml

application: application-name
version: 1
runtime: php55
api_version: 1
threadsafe: true

handlers:

- url: /favicon.ico
static_files: favicon.ico
upload: favicon.ico

- url: /google-api-php-client
script: google-api-php-client

- url: /testfile.txt
static_files: testfile.txt
upload: testfile.txt

- url: /
script: indexTest.php

Выход локально

fileexistlocal

Выход на ГАЭ

existfileGAE

Почему это работает при локальном тестировании и после развертывания не работает?

Я попытался изменить местоположение файла и изменить app.yaml файл, и добавив что-то вроде:

- url: /templates
static_dir: templates

И положить файл в шаблоны каталог. Но опять же, он работает в локальном хосте, но не развернут в App Engine.

0

Решение

Вам нужно установить application_readable Отметьте на вашем обработчике, если вы хотите иметь возможность читать статические ресурсы из вашего приложения.

Конечно, если вы на самом деле не хотите, чтобы файл служил статическим ресурсом, а просто хотите его прочитать, то даже не включайте его в файл app.yaml, и он будет загружен и доступен из вашего приложения.

Посмотреть документы Вот.

3

Другие решения

Других решений пока нет …