Проблема с путями

Главные вкладки

Аватар пользователя lena_elena4 lena_elena4 19 июля 2009 в 14:05

Помогите, пожалуйста, не пойму, в чем дело.
Запрашиваю файл - пишет, что файл не найден.
Права на файл - 777
Права на папку, где лежит файл - 755
Путь строится верный, распечатывала, проверяла.
Ни на локалхосте, ни на сервере не работает.
В чем еще может быть дело?

function library_form_submit($form, &$form_state) {
ob_start();
$filename = file_create_url('diff.txt');
if (!file_exists($filename)) drupal_set_message('Файл '  . $filename . ' не найден');
drupal_set_header("Content-Type: text/plain");
drupal_set_header("Content-Length: " . filesize($filename));
drupal_set_header("Content-Disposition: attachment; filename=" . $filename);
$fp = fopen($filename, 'r');
flock($fp, LOCK_EX);
$read = fread($fp, filesize($filename));
echo $read;
$ob = ob_get_contents();
flock($fp, LOCK_UN);
fclose($fp);
ob_end_clean();
return print $ob;
}

Комментарии

Аватар пользователя dimedrol dimedrol 19 июля 2009 в 15:04

submit и validate формы не выдают контент.
Они предназначены только для логики - проверить, записать в БД и т.п.

Перенесите этот код в какой-нить обычный MENU_CALLBACK.

А какой смысл лочить файл, если Вы открываете его на чтение? В этом есть сакральный смысл?

Использование буферизации тоже не совсем понятно...

И функция print всегда возвращает 1-ку.

Аватар пользователя lena_elena4 lena_elena4 19 июля 2009 в 17:18

Перенесла в колбэк,и снова - файл не найден!

«А какой смысл лочить файл, если Вы открываете его на чтение? В этом есть сакральный смысл?»
Пока кто-то скачивает файл - для остальных он блокируется.

«Использование буферизации тоже не совсем понятно...»
Буферизация нужна для того, чтобы послать заголовки. Потому что до заголовков уже был вывод в броузер.

«И функция print всегда возвращает 1-ку.»

А как здесь без print?