У меня есть довольно непонятный вопрос / проблема, позвольте мне изложить ее вам.
У меня два каталога - галерея и загрузчик
Каталог загрузчика защищен паролем htaccess. Здесь находятся несколько страниц PHP и программа загрузки файлов PHP. Я ввожу свои учетные данные, когда получаю доступ к PHP-файлу индекса, когда я загружаю индекс в каталог.
Проблема в том, что загрузчик загружает файлы, а затем перемещает их в каталог галереи (не защищенный паролем). Затем он запускает другие сценарии, чтобы скопировать это изображение, изменить его размер, а затем удалить оригинал. Этот процесс работает прекрасно, пока я не помещу пароль htaccess в каталог загрузчика. Поэтому по какой-то причине загрузчик PHP в защищенном каталоге не может перемещать / работать с загруженным изображением, а затем копировать его в незащищенный каталог.
Есть идеи, что мне нужно делать? Я не уверен, что проблема заключается в том, что загрузчик PHP вызывает другие скрипты в защищенном каталоге или возникают проблемы при перемещении его в незащищенный каталог.
РЕДАКТИРОВАТЬ: вот пример кода, и, как вы можете видеть, URL-адреса не используются (и не используются в методе resizeMyImageTN).
//WHERE THE SAVE HAPPENS!
move_uploaded_file($_FILES['Filedata']['tmp_name'], '../../uploads/'.$folder.'/'.$new_index.'-' . $_FILES['Filedata']['name']);
//Call function to resize images pass in path
resizeMyImageTN($_FILES['Filedata']['name'],$folder, $new_index);
unlink('../../uploads/'.$folder.'/'.$new_index.'-' . $_FILES['Filedata']['name']);
2 ответа
Я забыл на это ответить (мое плохое). В конце концов, я смог заставить его работать, только не защищая каталог загрузки .htaccess. Это было не идеально, но я не мог понять ничего другого. Поскольку я спросил об этом, я преобразовал сайт в Django, и это устранило все мои проблемы.
Защита .htaccess работает на уровне веб-сервера. Но, ЕСЛИ вы не используете URL-адреса в различных вызовах манипулирования файлами, PHP-скрипт работает на уровне файловой системы и никогда не увидит защиту .htaccess.
move_uploaded_file($_FILES['uploaded']['tmp_name'], '/some/dir/that/is/protected/newname.txt');
Не будет задействовать уровень HTTP, что означает отсутствие защиты. Но если вы попробуете
move_uploaded_file($_FILES['uploaded']['tmp_name'], 'http://myserver.com/newname.txt');
Это будет включать новый HTTP-запрос, повторную загрузку файла и подчиняться любым ограничениям URl, действующим на сервере.
Не увидев кода, мы, скорее всего, не сможем ответить на ваш вопрос.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.