И как работать с базой банных в данном случае? она же создастся локально.есть куча умных способов а ля миграции и проч. вкусности, у меня команда из 3 чел, так что я тупо делаю экспорт бд, заливаю в корень проекта, называю его включая дату, чтобы было видно когда делал, в другом месте все это апдейтю и заливаю базу поверх старой(экспорт с дроп тэйбл). Решение немного "влоб", но мне достаточно удобно.
class DB{
private $dbHost = dbHost;
private $dbUsername = dbUsername;
private $dbPassword = dbPassword;
private $dbName = dbName;
Если обратиться просто по ссылке test.ru/?file=photo, то браузер загрузит файл, но он пустойон не пустой, если его открыть нотепадом то вы увидите ошибки сервера, скорее всего связанные с определением размера файла с удаленного сервера. Для файлов не на локальном сервере размер файла можно получить через заголовки от сервера, например так:
$head = array_change_key_case(get_headers("http://212031.selcdn.ru/myAudio/pictures/audio/ae/BeRoliUlL/07c7ba62ae2e2b750c3588c73eab727c.png", TRUE));
$filesize = $head['content-length'];
$outputName = 'http://212031.selcdn.ru/myAudio/pictures/audio/ae/BeRoliUlL/07c7ba62ae2e2b750c3588c73eab727c.png';
header('Content-Disposition: attachment; filename="somefile.png"');
header("Content-Type: application/octet-stream");
header("Content-Length: " . $filesize);
echo (file_get_contents($outputName));
Если вы используете БД PostgreSQL, то можете хранить аттрибуты, к примеру, в JSON-поле таблицыво первых мускуль тоже умеет, во вторых это нехило нарушает нормальность таблиц, в третьих - кто-то видел тест по производительности выборки из жсон полей в постгри/мускуль? Хотелось бы глянуть как они работают, есть подозрение что не очень быстро. Буду благодарен за ссылочки.
$outputName = "https://storage.com/myAllFiles/oneFile/picture.png"
header('Content-Disposition: attachment; filename="somefile.png"');
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($outputName));
echo (file_get_contents($outputName));