CbCoder (30 Июль 2013 - 14:55) писал:
Что значит "ничего не вышло"? В переменную $data файл считался? Если да, то возможно ошиблись в каких-то других параметрах.
Обрисовываю всю схему:
Есть строка в базе с id=1000
Есть файл который называется 1000.jpeg
Я скриптом создаю дерево папок и файл, после чего через ftp переношу это дерево и файл в папку files на сервере.
Вот скрипт:
Цитата
<?
function get_file_hash($field_id,$line_id,$fname)
{
return md5($field_id."_".$line_id."_".$fname)."_".$field_id."_".$line_id."_".ord($fname[0]);
}
// Получить полный путь к файлу таблицы
function get_file_path($field_id, $line_id, $fname)
{
global $config;
$h=get_file_hash($field_id,$line_id,$fname);
return "files/".substr($h,0,2)."/".substr($h,2,2)."/".$h;
}
// Создать систему каталогов, если она необходимы, для заданного пути файла
function create_data_file_dirs($field_id, $line_id, $fname)
{
global $config;
$h=get_file_hash($field_id,$line_id,$fname);
$d="files/".substr($h,0,2)."/".substr($h,2,2);
if (!file_exists($d))
{
$d1="files/".substr($h,0,2);
if (!file_exists($d1))
{
mkdir($d1,0777);
// Если необходимы особые настройки прав сохраняем
//if ($config['chown']) chown($d1,$config['chown']);
//if ($config['chgrp']) chgrp($d1,$config['chgrp']);
}
mkdir($d,0777);
// Если необходимы особые настройки прав сохраняем
if ($config['chown']) chown($d,$config['chown']);
if ($config['chgrp']) chgrp($d,$config['chgrp']);
}
}
// Сохранить файл, автоматически будут созданны необходимые каталоги, если они необходимы
function save_data_file($field_id,$line_id,$fname,$data)
{
global $config;
create_data_file_dirs($field_id,$line_id,$fname);
$fname=get_file_path($field_id,$line_id,$fname);
if ($config['chown_group']) $f=fopen($fname,'w', 0666);
else $f=fopen($fname,'w');
fwrite($f,$data);
fclose($f);
if ($config['chown']) {chown($fname,$config['chown']&0666);} // Снимаем флаг запуска
if ($config['chgrp']) {chgrp($fname,$config['chgrp']);}
}
$data = file_get_contents('1000.jpeg', true);
save_data_file("98", "1000", "1000.jpeg", $data);
?>
Скрипт лежит в одной папке с файлом 1000.jpeg
Подскажите пожалуйста где мог сделать ошибку?
В базе файл назван 1000.jpeg
Ссылка которую формирует база выглядит так: /open_file.php?field=98&line=1000&file=1000.jpeg&show=1
Вместо картинки - белый экран.
При этом если смотреть код страницы - есть блок размерами 240х320. (Это размер картинки).
Сообщение отредактировал skakot: 30 Июль 2013 - 15:18