разрабатывал сайт на машине c LAMP работало все
как оказалось у заказчика сервер с IIS
вроде многое отладили но так и не работает заливка изображений с помощью модуля Image
в той конфигурации которая сейчас при создании материала типа Image
выводит следующие ругательства:
«Указанный файл galery_items_large_25.jpg не может быть загружен. Разрешены только JPEG, PNG и GIF изображения.
Выбранный файл не удается скопировать, поскольку не найден файл с таким именем. Проверьте правильность указанного имени файла.
»
при этом заливка изображений с помощью IMCE превосходно работает
посоветуйте в какую сторону копать ...
Комментарии
так JPG или JPEG?
для системы это два разных расширения
это строка ошибки из друпала я думаю подразумеваються именно форматы файлов а не расширения...
тем более что с абсолютно такими же настройками под апачем на линуксе все великолепно работает...
посмотрел в переводах
The selected file %file could not be copied, because no file by that name exists. Please check that you supplied the correct filename.
includes/file.inc:241
судя по полученному выводу в %file приходит пустая строка...
первая из
includes/file.inc:681
покопался в file.inc
$errors = array();
$info = image_get_info($file->filepath);
if (!$info || empty($info['extension'])) {
$errors[] = t('Only JPEG, PNG and GIF images are allowed.');
}
return $errors;
}
$errors[] = t('Only JPEG, PNG and GIF images are allowed.');
добавил
$errors[] = $file->filepath;
вывело
«
Указанный файл index5_1_21.jpg не может быть загружен.
Разрешены только JPEG, PNG и GIF изображения.
C:\WINDOWS\Temp\php66.tmp
Выбранный файл C:\Inetpub\sitename не может быть скопирован.
»
грешу на права на запись у папки C:\WINDOWS\Temp\
можно попробовать переопределить php-шную темп-директорию в одну из директорий домашней папки сайта.
увы, под IIS этого не делал.
у меня доступ есть только к папке с сайтом
так чтопохоже придеться ждать шевелений от админа
под линукс
друпал при установке под линукс
в
http://lindal.ufaline.ru/admin/settings/file-system
параметр Временная папка:
установил в
/var/www/web9/phptmp
под иис я настроил
sites/default/files/temp
но почемуто веравно лезит в папку c:\windows\temp
указал в параметр
Временная папка:
c:/inetpub/sitename/sites/default/files/temp
И заработало
думаю что этот параметр требует указания полного пути
рано обрадовался
заливаешь один файл нормально... следующий нормально
и потом бац и перестает принимат файлы выдает
в духе
«
Указанный файл galery_items_large_67.jpg не может быть загружен. Разрешены только JPEG, PNG и GIF изображения.
»
потом после множества попыток такие принимает один файл и все опять файлы не загружаються. imce приэто работает абсолютно нормально
собака порылась вот здесь
$temporary_directory = variable_get('file_directory_temp', NULL);
if (is_null($temporary_directory)) {
$directories = array();
// Has PHP been set with an upload_tmp_dir?
if (ini_get('upload_tmp_dir')) {
$directories[] = ini_get('upload_tmp_dir');
}
// Operating system specific dirs.
if (substr(PHP_OS, 0, 3) == 'WIN') {
$directories[] = 'c:\\windows\\temp';
$directories[] = 'c:\\winnt\\temp';
$path_delimiter = '\\';
}
else {
$directories[] = '/tmp';
$path_delimiter = '/';
}
foreach ($directories as $directory) {
if (!$temporary_directory && is_dir($directory)) {
$temporary_directory = $directory;
}
}
// if a directory has been found, use it, otherwise default to 'files/tmp' or 'files\\tmp';
$temporary_directory = $temporary_directory ? $temporary_directory : file_directory_path() . $path_delimiter .'tmp';
variable_set('file_directory_temp', $temporary_directory);
}
и соответственно вопрос
где должно устанавливаться значение file_directory_temp
variable_get('file_directory_temp', NULL);
чтобы не пыталось лезть в с:\windows\temp
это раз
а как временный выход сделал так
$directories[] = 'c:\\windows\\temp';
$directories[] = 'c:\\winnt\\temp';
направил в несуществующие папки дописав к пути в конец по символу 1
и
в
$temporary_directory = $temporary_directory ? $temporary_directory : file_directory_path() . $path_delimiter .'tmp';
tmp заменил на temp что указывало на существующий путь...
вопрос как это настроить по человечески без издевательств над кодом...
а то совсем не улыбаеться править этот кусок каждый раз когда
устанваливешь новую версию