@uaSaint

Как получить путь к файлу?

Собственно ясно, что вопрос странный и почему так все работает понимаю но есть задача которую нужно решить, а пути не вижу... Решить необходимо средствами php/javascript. Необходима возможность из браузера выбрать файл из файловой системы ( по аналогии с ) но вместо загрузки на сервер приобразовать имя файла и записать результаты в файл. Проблема в том, что мне необходимо получить и отобразить полный путь к файлу в ФС пользователя, и также отобразить полный путь куда будет писаться файл. Средствами js получается получить только имя файла, как из php организовать работу input поля с получением пути я вообще не понимаю...

Использование подразумевается на внутренних ресурсах, т.е. без попытки доступа к "чужой" файловой системе, т.е. если нужны настройки сервера - это не проблема. приветствуются любые подсказки и костыли...
  • Вопрос задан
  • 6956 просмотров
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
1. Вы не можете из php/js узнать полный путь к файлу на диске на компьютере пользователя.
Вы можете только получить сам файл (при отправке формы) и его название.
*В принципе можно получить контент файла, но опять же ничего кроме кроме отправки его к вам на сервер вы не сделаете. ( www.html5rocks.com/ru/tutorials/file/dndfiles )

2. Вы не можете из php/js записать файл на компьютер к пользователю по определенному пути.
Вы можете только инициировать загрузку файла пользователем, а он уже сам выберет куда сохранить.
Ответ написан
@kis92
phpclub.ru/detail/article/upload

а так же гуглинг php file upload
Ответ написан
@uaSaint Автор вопроса
В общем я пошел не много другим путем... Мотив - закончить нужно сегодня, а заплатят мне за это не больше 10$ :)
1. Получаю файл стандартным input type='file' и отправляю форму.
2. Принимаю форму и забираю имя файла.
3. Использую функцию( просто ищу файл ):
if (!defined("__DLIB_FILEFIND_DEFINED")) 
  { 
  define('__DLIB_FILEFIND_DEFINED', TRUE); 

  function filefind ($basedirectory, $needle) 
     { 
     $handle=opendir($basedirectory); 
     while ($file = readdir($handle)) 
       { 
       if (($file == ".") || ($file == "..")) 
         continue; 

       if (is_dir($basedirectory . '/' . $file)) 
         { 
         $subDirResult = filefind($basedirectory . '/' . $file, $needle); 
         if ($subDirResult != "") 
           { 
           closedir($handle); 
           return $subDirResult; 
           } 
         }   //  if (is_dir($file)) 

       if (strcmp($file, $needle) == 0) 
         { 
         closedir($handle); 
         return $basedirectory . '/' . $needle; 
         } 

       }   // while ($file = readdir($handle)) 
     closedir($handle); 
     return ""; 
     }  //  function filefind 
  }

передавая в качестве парраметра '/' ( корневую дирректорию ) и полученное имя файла.
4. результат отображаю, как путь.

P.S. У заказчика windows... для меня это приключение :( Может кто знает как указать корень ФС в windows ?
Вопрос с тем, как показать путь который выбрал пользователь для сохранения файла пока остается...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы