Не открывается файл с файл сервера
При открытии файла, который находится на FTP сервере (заходим на FTP через проводник) файл открывается не в определенной программа (Excel, Word, Paint и т.д.), а в браузере по умолчанию. Как сделать чтобы файл открывался в нужной программе?
ОС Windows 7x32/64.
IIS FTP на Windows 2008r2.
Во вложении скриншоты что происходит в папке FTP.
С Уважением, Петр.
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Копирование файлов с FTP-сервера на компьютеры клиентов без замены уже имеющихся файлов
Приветствую. Такая задача. имеется фтп сервер. на нем лежит 5 папок, в каждой паке каждый день.
Закачка файлов с FTP-сервера
Есть программа, для которой выходят обновления, но пользователь их не видит, посклольку обновления.
Копирование файлов с FTP-сервера
Доброго времени суток. имея небольшой багаж знаний в этой области))) создаю небольшой батник для.
Backup файлов с сервера FTP
Всем доброго времени суток. Я сделал програмку для бэкапа, она создает папки на рабочем столе.
Такое ощущение, что FTP просто не предназначен для работы с файлами на нем в понимании пользователя, а работает как простой файлообменник без излишеств. Та же проблема, открывает фото с FTP сервера в Хроме, вместо IrfanView. Который месяц долблюсь и не могу найти решения. Помогите. Я бы попробовал переустановить необходимый браузер (чтоб был последним по времени установки). Возможно поможет
Тут нет решения.
Если открываешь ФТП в браузере, то браузер перехватывает файл и открывает через себя.
Надо сначала на ПК сохранить и открыть виндой.
И не пользоваться ФТП через браузер. Если ФТП открытый, то винда позволяет подключаться к ФТП как к обычному диску(ну почти, но это нюансы).
у меня такой же вопрос. Как открыть файл напрямую, а не скачивать его. Все делается через стандартный проводник windows 10, а не через браузер, но при этом когда я пытаюсь открыть какой либо файл на ftp серевере (в моем случае это мой смартфон) вместо диалога с выбором программы для открытия, меня перекидывает на стандартный браузер, а он в свою очередь предлагает скачать файл на пк Привет всем. Та же фигня. решения нет.Есть знатоки которые могут помочь?
Win8.1x64 IE11
Скачивание файлов с FTP сервера на локальный ЖД
Здравствуйте. Возникла проблема, возможно глупая и её решение должно быть элементарным, но всё же.
Удаление дублей файлов и папок с FTP-сервера
Здравствуйте, пожалуйста помогите с написание bat файла. Надо удалить дубли файлов и папок.
Список папок и файлов с удаленного FTP сервера
Собственно, тема. Подскажите кто знает, может скрипт какой есть или как такое сделать? В.
Получение списка файлов с ftp сервера с авторизацией
Как можно получить список файлов с сервера с авторизацией. Никак не могу понять, как это сделать.
Загрузка/открытие файлов с сервера
Получаю имя и путь до файла, и вот таким образом загружаю его с сервера на ПК пользователя .
Копирование wav-файлов с FTP-сервера на локальную машину
Возникла проблема следующего рода: Есть ftp_command.txt login psw cd.
Не проблема не в аттрибутах. Файл нельзя ни удалить, ни переименовать, ни изменить аттрибуты. Он блокирован отдельным процессом на сервере. Причём на сервере с файлом тоже ничего сделать не удаётся, пока сервер не перегрузишь.
Не проблема не в аттрибутах. Файл нельзя ни удалить, ни переименовать, ни изменить аттрибуты. Он блокирован отдельным процессом на сервере. Причём на сервере с файлом тоже ничего сделать не удаётся, пока сервер не перегрузишь.
На сервере можно "срубить" процесс? Есть к нему доступ? Кстати, фай каким приложением открывается?
На сервере можно "срубить" процесс? Есть к нему доступ? Кстати, фай каким приложением открывается?
Типичный пример того, как плохо быть постоянно подключенным к серверу. Это я к соседнему топику о постоянных активных коннекшенах.
Типичный пример того, как плохо быть постоянно подключенным к серверу. Это я к соседнему топику о постоянных активных коннекшенах.
Ну, во-первых. при постоянно открытых коннектах, если всё по-уму делать, такого не происходит. А во-вторых, каждый раз устанавливать новый коннект - очень накладно. У меня, например, постоянный 1 коннект основной, а вот рекордсеты уже локальные, на уровне процедур, в большинстве своём.
Ну, во-первых. при постоянно открытых коннектах, если всё по-уму делать, такого не происходит. А во-вторых, каждый раз устанавливать новый коннект - очень накладно. У меня, например, постоянный 1 коннект основной, а вот рекордсеты уже локальные, на уровне процедур, в большинстве своём.
у меня другая логика - рекордсет может быть хоть глобальным, по барабану - вопрос только в памяти, хватило бы. рекордсет - это ж снимок данных с сервера, который ты изменяешь только локально, так что если что с ними случится на твоей машине - не так страшно. коннекшн - это уже зашаренный ресурс,который загружает не только твой комп, но и сервак. и в случае некорректной работы проблемы могут быть как локально, так и на серваке.
Проблема:
Файл открыт по сети с сервера. Сеть по какой-то причине обрывается. Восстанавливаю сеть, но открытый ранее файл
остаётся блокированным и становится доступным только для чтения, пока не перегрузишь сервер. Как разблокировать такой файл?
ну и влогике предыдущего поста - открыл файл, создал его локальную копию, сделал все что надо локально, скопировал изменения на сервер. думайте, какие проблемы возникнут, если несколько пользователей захотят поработать с одним и тем же файлом!
ну и влогике предыдущего поста - открыл файл, создал его локальную копию, сделал все что надо локально, скопировал изменения на сервер. думайте, какие проблемы возникнут, если несколько пользователей захотят поработать с одним и тем же файлом!
Что верно, то верно. Но всё же, каким приложением открывается файл?:P
Что верно, то верно. Но всё же, каким приложением открывается файл?:P
Файл формата MDB. Это база данных, она открывается приложением, написанным на VB5. Когда оператор открывает у себя контрагента, в базе данных этот контрагент блокируется. После сбоя в сети процесс на сервере остаётся открытым, а контрагент заблокированным. Чтобы его разблокировать, приходится перегружать сервер. Во время рабочего дня это сбивает с ритма всех операторов на локальных компьютерах.
Файл формата MDB. Это база данных, она открывается приложением, написанным на VB5. Когда оператор открывает у себя контрагента, в базе данных этот контрагент блокируется. После сбоя в сети процесс на сервере остаётся открытым, а контрагент заблокированным. Чтобы его разблокировать, приходится перегружать сервер. Во время рабочего дня это сбивает с ритма всех операторов на локальных компьютерах.
Если вы администрируете общие сетевые папки Windows, скорее всего вы периодически сталкиваетесь с просьбами пользователей принудительно закрыть файлы, открытые (заблокированные) в сетевых папках другими пользователями. Обычно это связано с некорректной работой программы, неправильном завершении сессии пользователя или ситуациях, когда пользователь открыл файл и забыл закрыть его (ушел домой, в отпуск и т.д.). Во всех этих случаях файл в сетевой папке оказывается заблокированным, и другие пользователи не могут вносить в него изменения.
В этой статье мы покажем, как получить список открытых файлов на файловом сервере Windows, узнать какие пользователи их используют, и способы сброса файловых сессий для разблокировки открытых файлов.
Вывод списка открытых файлов в сетевой папке Windows
Список открытых по сети файлов в Windows можно получить с помощью стандартной графической консоли Computer Management (Управление компьютером — compmgmt.msc ).
Запустите на файловом сервере консоль Computer Management (или подключитесь к нему консолью удаленно со своего компьютера) и перейдите в раздел System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы). В правой части окна отображается список файлов на сервере, открытых удаленно. В данном списке указан локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).
Этот же список открытых файлов можно получит с помощью встроенной консольной утилиты Openfiles. Например, с помощью следующей команды можно получить id сессии, имя пользователя и полный локальный путь к открытому файлу:
Openfiles /Query /fo csv |more
Вы можете вывести список открытых файлов на сервере удаленно. Например, чтобы вывести все открытые по сети файлы на сервере mskfs01, выполните:
Openfiles /Query /s mskfs01 /fo csv
Команда Openfiles позволяет также вывести список локально открытых файлов. Для этого на сервере нужно включить опцию Maintain Objects List (Построение списка объектов) командой openfiles /local on и перезагрузить сервер. После этого команда Openfiles будет отображать файлы, открытые локальными процессами (этот режим желательно использовать только для отладки, т.к. может негативно сказаться на производительности сервера).Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles
Чтобы удаленно определить пользователя, который открыл (заблокировал) файл cons.adm в сетевой папке на сервере mskfs01, выполните команду:
Openfiles /Query /s mskfs01 /fo csv | find /i "cons.adm"
Ключ /i используется, чтобы выполнялся регистронезависимый поиск.Можно указать только часть имени файла. Например, чтобы узнать, кто открыл xlsx файл, в имени которого есть строка farm, воспользуйтесь таким конвейером:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i "xlsx"
Можно, конечно найти открытый файл и в графической консоли Computer Management, но это менее удобно (в консоли нет возможности поиска).
Как принудительно закрыть открытый файл в Windows?
Чтобы закрыть открытый файл, нужно найти его в списке файлов секции Open Files и в контекстном меню выбрать пункт “Close Open File”.
Если на файловом сервере сотни открытых файлов, найти их в консоли будет непросто. Удобнее воспользоваться утилитой Openfiles. Как мы уже говорили, она возвращает ID сессии открытого файла. Вы можете принудительно закрыть файл и сбросить подключение пользователя по ID SMB сессии. Сначала нужно определить ID сессии открытого файла:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i ".xlsx"
Теперь можно принудительно отключить пользователя по полученному идентификатору SMB сессии:
Openfiles /Disconnect /s mskfs01 /ID 67109098
Можно принудительно сбросить все сессии и освободить все файлы, открытые определённым пользователем:
openfiles /disconnect /s mskfs01 /u corp\aivanova /id *
Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell
В версии PowerShell в Windows Server 2012/Windows 8 появились командлеты для управления сетевыми файлами и папками на SMB сервере. Эти командлеты можно использовать чтобы удаленно закрыть открытые по сети файлы.
Список открытых файлов можно получить с помощью командлета Get-SMBOpenFile. Чтобы закрыть файл (сбросить подключение), используется Close-SmbOpenFile.
Для вывода полного списка открытых файлов на сервере, выполните команду:
Команда возвращает ID файла, ID сессии и полное имя файла.
Можно вывести список открытых файлов с именами пользователей и компьютеров (IP адресами):
Можно вывести все файлы, открытые определенным пользователем:
Get-SMBOpenFile –ClientUserName "corp\aaivanov" |select ClientComputerName,Path
или с определенного компьютера (сервера):
Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path
Можно вывести список открытых файлов по шаблону. Например, все открытые по сети exe файлы:
или файлы с определенным именем:
Чтобы закрыть файл используется командлет Close-SmbOpenFile . Закрыть файл можно по ID:
Close-SmbOpenFile -FileId 4123426323239
Но обычно удобнее закрыть файл по имени:
Get-SmbOpenFile | where | Close-SmbOpenFile -Force
С помощью Out-GridView можно сделать простую графическую форму для поиска и закрытия файлов. Следующий скрипт выведет список открытых файлов. Администратор должен с помощью фильтров в таблице Out-GridView найти, выделить нужные файлы и нажать ОК. В результате выбранные файлы будут принудительно закрыты.
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose
Как удаленно закрыть открытые SMB файлы с помощью PowerShell?
Командлеты Get-SMBOpenFile и Close-SmbOpenFile можно использовать чтобы удаленно найти и закрыть открытые файлы. Сначала нужно подключиться к удаленному SMB серверу Windows через CIM сессию:
$sessn = New-CIMSession –Computername mskfs01
Также вы можете подключаться к удаленному серверам для запуска команд через командлеты PSRemoting: Enter-PSSession или Invoke-Command .Следующая команда найдет SMB сессию для открытого файла *pubs.docx и завершит ее.
Get-SMBOpenFile -CIMSession $sessn | where | Close-SMBOpenFile -CIMSession $sessn
Подтвердите закрытие файла, нажав Y . В результате вы разблокировали открытый файл. Теперь его могут открыть другие пользователи.
С помощью PowerShell вы можете закрыть и разблокировать на файловом сервере все файлы, открытые определенным пользователем (пользователь ушел домой и не освободил файлы). Например, чтобы сбросить все файловые сессии для пользователя ipivanov, выполните:
Get-SMBOpenFile -CIMSession $sessn | where |Close-SMBOpenFile -CIMSession $sessn
В PHP скриптах, вызывая include() , require() , fopen() или их производные, такие как include_once , require_once или даже move_uploaded_file() , часто появляются ошибки или предупреждения:
Не удалось открыть поток: нет такого файла или каталога.
Как быстро найти первопричину проблемы?
Ответ 1
Есть много причин, по которым можно столкнуться с этой ошибкой, и поэтому я дам контрольный список того, что необходимо проверить в первую очередь для решения этой ситуации.
Предположим, у нас есть следующая строка:
require "/path/to/file"
Контрольный список
1. Проверьте путь к файлу на предмет опечаток
проверьте вручную (визуально проверив путь) ;
переместите все, что вызывается с помощью require* или include* в переменную, скопируйте ее и попробуйте получить к ней доступ с терминала:
2. Убедитесь, что путь к файлу правильный с точки зрения относительного и абсолютного пути
если он начинается с косой черты "/", то это относится не к корню папки вашего веб-сайта (корень документа), а к корню вашего сервер :
например, каталог вашего веб-сайта может быть /users/tony/htdocs ;
не относительно пути к корню вашего веб-сайта или файла ;
или всегда используйте абсолютные пути к файлам .
используйте require __DIR__."/relative/path/from/current/file" , который возвращает каталог текущего файла ;
определите SITE_ROOT константу самостоятельно:
в корне каталога вашего веб-сайта создайте файл, например , config.php
в config.php напишите :
в каждом файле, в котором вы хотите сослаться на корневую папку сайта, включите config.php и затем используйте SITE_ROOT константу везде, где хотите:
3. Проверьте свои пути включения
Другой способ включения файлов, ни относительный, ни абсолютный, - это полагаться на путь включения . Это часто бывает с библиотеками или фреймворками, такими как, например, Zend framework.
Подобное включение будет выглядеть так:
include "Zend/Mail/Protocol/Imap.php"
В этом случае вы должны убедиться, что папка, в которой находится «Zend», является частью пути включения.
Это можно проверить с помощью:
echo get_include_path();
Вы можете добавить в него папку с помощью:
set_include_path(get_include_path().":"."/path/to/new/folder");
4. Убедитесь, что у вашего сервера есть доступ к этому файлу
Может случиться так, что у пользователя, запускающего серверный процесс (Apache или PHP), просто нет разрешения на чтение или запись в этот файл.
Чтобы проверить, под каким пользователем запущен сервер, можно использовать posix_getpwuid :
$user = posix_getpwuid(posix_geteuid());
var_dump($user);
Чтобы узнать права доступа к файлу, введите в терминале следующую команду:
ls -l <path/to/file>
5. Проверьте настройки PHP
Если установлено, PHP не сможет получить доступ к любому файлу за пределами указанного каталога (даже через символическую ссылку).
По умолчанию не устанавливается, и в этом случае ограничений нет.
Можно проверить, вызвав phpinfo() или используя ini_get("open_basedir") .
Вы можете изменить настройку, отредактировав файл php.ini или файл httpd.conf.
Е сли включено, могут быть ограничения. Однако данный режим был удален в PHP 5.4. Если вы все еще используете версию, которая поддерживает безопасный режим, обновитесь до версии PHP, которая это еще поддерживает .
О тносится только к включению или открытию файлов через сетевой процесс, такой как http://, но не работает для локальной файловой системы.
Э ти опции можно проверить, используя ini_get("allow_url_include") или установи в с помощью ini_set("allow_url_include", "1") .
Этот пользователь владеет файлом и, возможно, родительским каталогом (особенно родительским каталогом, если вы хотите записывать файлы). В большинстве сред общего хостинга это не будет проблемой, потому что ваш пользователь должен владеть всеми файлами под вашим корневым каталогом.
В Linux хорошей практикой будет использова ние chmod 600 (только владелец может читать и писать) или chmod 644 (владелец может писать, но все могут читать) .
Другие случаи
Если ничего из вышеперечисленного не помогло диагностировать проблему, могут возникнуть следующие особые ситуации:
1. Включение библиотеки на основе пути включения
Может случиться так, что вы подключаете библиотеку, например, платформу Zend, используя относительный или абсолютный путь. Например:
require "/usr/share/php/libzend-framework-php/Zend/Mail/Protocol/Imap.php"
Но по-прежнему получаете такую же ошибку.
Это могло произойти из-за того, что файл, который вы (успешно) включили, сам имеет оператор include для другого файла, и этот второй оператор include предполагает, что вы добавили путь этой библиотеки к пути включения.
Например, упомянутый ранее файл фреймворка Zend может включать следующее:
include "Zend/Mail/Protocol/Exception.php"
что не является включением ни по относительному пути, ни по абсолютному пути. Предполагается, что каталог фреймворка Zend был добавлен в путь включения.
В таком случае единственное практическое решение - добавить каталог в ваш путь включения.
2. SELinux
3. Symfony
Если вы используете Symfony и получаете эту ошибку при загрузке на сервер, возможно, к э ш приложения не был сброшен, либо потому, что app/cache был загружен, либо этот к э ш не был очищен.
Для этого надо выполнить следующую консольную команду:
cache:clear
4. Внутри Zip-файла символы, отличные от A SC II
По-видимому, эта ошибка может произойти также при вызове zip->close(), когда некоторые файлы внутри zip имеют в своем имени не-ASCII символы, такие как, например, «é».
Потенциальное решение - обернуть имя файла, используя utf8_decode(), перед созданием целевого файла.
Ответ 2
В дополнение к предыдущему ответу:
Программное обеспечение для виртуального хостинга
Права доступа к файлам
Ответ 3
Samba Shares
Если у вас есть тестовый сервер Linux и вы работаете из клиента Windows, общий ресурс Samba мешает команде chmod . Даже если вы используете:
chmod -R 777 myfolder
со стороны Linux вполне возможно, что Unix Group\www-data все еще не будет иметь доступ на запись. Есть рабочее решение : если ваш общий ресурс настроен так, что администраторы Windows сопоставлены с корневым каталогом – в Windows откройте разрешения, отключите наследование для вашей папки с копией, а затем предоставьте полный доступ для www-данных.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Читайте также: