Проблема с приватным методом скачивания

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

Аватар пользователя faraon faraon 13 января 2009 в 23:39

Стоит модуль Comment upload, приватный метод загрузки файлов (на сайте закрытый форум, в комментариях можно загружать файл). Проблема - прикрепленные файлы вместо скачивания открываются в браузере (Mozila, Opera, Explorer) как текстовый файл, т.е. проблема связанная с MIME TYPE.

При этом:

  • вложения к нодам открываются нормально;
  • вложения в комментариях открываются нормально на этапе просмотра комментария, но после сохранение просто открываются в браузере;

Комментарии

Аватар пользователя faraon faraon 14 января 2009 в 15:29

После долгих поисков проблема решилась изменением функции comment_upload_file_download() в файле comment_upload.module

function comment_upload_file_download($file) {
  $file = file_create_path($file);
  $result = db_query("SELECT f.* FROM {comment_upload_files} f WHERE filepath = '%s'", $file);
  if ($file = db_fetch_object($result)) {
    if (user_access('view uploaded files')) {
      $node = node_load($file->nid);
      if (node_access('view', $node)) {
        $name = mime_header_encode($file->filename);
        $type = mime_header_encode($file->filemime);
        return array(
          'Content-Type: '. $type .'; name='. $name,
          'Content-Disposition: attachment; filename='.$file->filename,
          'Content-Length: '. $file->filesize,
          'Expires: 0', 'Pragma: cache', 'Cache-Control: private',
        );
      }
      else {
        return -1;
      }
    }
    else {
      return -1;
    }
  }
}

Всем спасибо Smile