2016-12-06 4 views
0

Моя проблема заключается в том, что каждый раз, когда пользователь загружает фотографии через мое приложение в режиме спуска, он теряется. Когда я пытаюсь обновить код через git, я не мог найти решение в сети. Поэтому я пришел сюда для консультаций экспертов. я также был бы признателен, если кто-нибудь может указать мне на статью, которая делает это для приложения php в openshift.как хранить файлы (загруженные пользователем фотографии) и получить к нему доступ без каких-либо потерь через php-код в openshift

Проблема заключается в том, что мои загруженные пользователем файлы хранятся в папке /user/{$_SESSION['id']}, расположенной в папке репо. через исследование я обнаружил, что он должен храниться в папке app-root/data. Если да, то как я могу сохранить загруженные пользователем фотографии прямо там и получить к нему доступ для пользователя, который хочет просмотреть его в браузере, как www.testing-pad4u.rhcloud.com/home.php?u={$_SESSION['name']}.

У меня нет подсказки о том, как это сделать, пожалуйста, помогите мне или назовите меня в правильном направлении, поскольку я полный noob для Linux.

после некоторых действий по устранению неполадок, как сказали на этом сайте https://yuan3y.com/2014/10/setting-up-an-upload-folder-in-openshift/ я изменил код для своих собственных целей, а вот код:

`#!/bin/bash 
# This deploy hook gets executed after dependencies are resolved and the 
# build hook has been run but before the application has been started back 
# up again. This script gets executed directly, so it could be python, php, 
# ruby, etc. 
# This script will create a permanent storage folder on openshift 
# put this in .openshift/action_hooks/build 

echo ".............pre_build............creating symlinks................."; 
if [ ! -d "$OPENSHIFT_DATA_DIR/upload/user" ]; then 
    mkdir $OPENSHIFT_DATA_DIR/upload/user 
echo "directory user made."; 
if [ ! -d "$OPENSHIFT_DATA_DIR/upload/group" ]; then 
    mkdir $OPENSHIFT_DATA_DIR/upload/group 
    echo "directory group made."; 

ln -sf $OPENSHIFT_DATA_DIR/upload/user $OPENSHIFT_REPO_DIR/user 
ln -sf $OPENSHIFT_DATA_DIR/upload/group $OPENSHIFT_REPO_DIR/group 
echo ".................creating symlinks completed........................"; 

##source: https://www.openshift.com/forums/openshift/one-newbie-question` 

и ошибка я получаю следующим образом: line 22: syntax error: unexpected end of file remote: An error occurred executing 'gear postreceive' (exit code: 2) remote: Error message: CLIENT_ERROR: Failed to execute action hook 'build'

+0

показать нам, что вы пробовали еще ..? –

+0

@ pranavm.s Я пробовал только hot_deploy. Потому что я не хотел разрушать вещи с чем-то, что я не понимаю. – shan2batman

+0

Используйте символическую ссылку для папки данных Openshift. –

ответ

0

Установите бит выполнения в файле с надстройкой «build».

Использование Git Bash

git update-index --chmod=+x <your_file> 

Затем совершить и толчок.

Вот мой крюк действия в качестве примера.

#!/bin/bash 
echo ".................Starting 'post_deploy' Action Hook..................................." 
echo ".................attempting 'uploads' setting up symlink........................" 
echo "................................................................................" 
cd $OPENSHIFT_REPO_DIR/thp/static 
ln -s $OPENSHIFT_DATA_DIR/uploads uploads 
echo ".................creating 'uploads' completed........................" 
echo "................................................................................" 
+0

Должен ли я делать это удаленно или после ssh'ing на сервер ??? – shan2batman

+0

Удаленно. Обновление вашего git-файла, как я показал вам. Если вы этого не сделаете, он будет продолжать очищать каждый раз, когда вы нажимаете новое обновление. –

+0

Я обновил код ошибки выше – shan2batman