Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прочесть папку на компьютере пользователя, доступ к файлам из JavaScript-скрипта 
:(
    Опции темы
Alx
Дата 23.10.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



сабж.
возможно такое?
как-нибудь прочитать и вывести юзеру древо каталогов на его компе.
любые извраты и нестандартные методы приветствуются smile


--------------------
PM MAIL WWW ICQ   Вверх
JSman
Дата 27.10.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



привет! существует огромное количество способов.
самый лучший простой извращенский способ:
  <OBJECT CLASSID="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B" ID="oShell"></OBJECT> - в странице

  или oShell = new WScript.CreateObject("WScript.Shell"); - в скрипте
  
есть метод
oShell.Run (path, viewMode, waitOnReturn)

запомни его!   

создай Bat файл 
с вызовом команды (TREE или DIR) c сохранением вывода в отдельный файл (>c:\index.txt).

вместо path напиши путь к cmd с открытием этого BAT файла)
 
oShell.Run (
    'cmd /c ' + BAT_File_Path + '  ' +параметры BAT файла, 
    0, 
    true);

затем подгрузи в фрейм этот сохраненный текстовый файл или
если у тебя вызов из сценария, то 
  var WB = new ActiveXObject("InternetExplorer.Application");
WB.Visible = true;
WB.Navigate (путь к файлу);

и радуйся))
PM ICQ   Вверх
Alx
Дата 27.10.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



ничего не понял. всётки я ламер ))

1) bat-файл я создавать не умею( можешь помочь?
2) куда я должен сохранять файл? к себе на сервер или к юзеру на комп? я ж из интернета хочу древо выводить, а не с локалки, ты понял, да? smile
3) что это даёт?
 
Код

var WB = new ActiveXObject("InternetExplorer.Application");
WB.Visible = true;
WB.Navigate (путь к файлу);

4) разве можно так просто bat-файлы запускать? а как же безопасность? я ж туда могу что-нибудь плохое запихнуть..) или нет?

пасиб!


--------------------
PM MAIL WWW ICQ   Вверх
JSman
Дата 27.10.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



короче, я понял)) забей на  то, что я написал
в зависимости от того какой сервер и какая поддержка сценариев стоит на нем.

Если Windows, то есть поддержка JScript.
А скорее всего у тебя стоит поддержка PHP. 
ну это не входит в компетенцию форума, хотя могу написать.

Сначала скажи, что стоит на серваке
PM ICQ   Вверх
Alx
Дата 27.10.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Цитата(JSman @  27.10.2006,  20:05 Найти цитируемый пост)
oShell = new WScript.CreateObject("WScript.Shell"); 

это какой язык? JavaScript? выдаёт ошибку : 

Цитата

WScript - определение отсутствует


Добавлено @ 20:36 
JSman, 
спасибо, но давай лучше вместе) я сам тоже хочу разобраться.

у меня всегда Unix. php есть.


--------------------
PM MAIL WWW ICQ   Вверх
JSman
Дата 27.10.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



создай файл 123.js

var oShell = new ActiveXObject("WScript.Shell");
oShell.Run ('c:\\', 1); 

и два раза  кликни по файлу))
PM ICQ   Вверх
Alx
Дата 27.10.2006, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



таакс, есть)

tree.html
Код

<script src="run_bat.js"></script>


run_bat.js
Код

var oShell = new ActiveXObject("WScript.Shell");
oShell.Run('c:\\test\\scan_system.bat', 1); 


scan_system.bat
Код

@echo off
set LIST=bla bla bla
echo %LIST% > C:\test\list.txt


как теперь мне вывести в C:\test\list.txt результат выполнения DIR или TREE и сделать так, чтобы это работало из Инета?

Это сообщение отредактировал(а) Alx - 27.10.2006, 20:54


--------------------
PM MAIL WWW ICQ   Вверх
JSman
Дата 27.10.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



у тебя сервак Windows? 
PM ICQ   Вверх
Alx
Дата 27.10.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Цитата(Alx @  27.10.2006,  20:33 Найти цитируемый пост)
у меня всегда Unix. php есть. 




--------------------
PM MAIL WWW ICQ   Вверх
JSman
Дата 27.10.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



все замечательно. тогда напишем (завтра). 

Это сообщение отредактировал(а) JSman - 27.10.2006, 21:05
PM ICQ   Вверх
Alx
Дата 27.10.2006, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



желательно чтоб всё это было кроссбраузерно и кроссплатформенно smile

давай лучше мы вместе) я сам тоже хочу понять smile


--------------------
PM MAIL WWW ICQ   Вверх
JSman
Дата 30.10.2006, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



читает текущую папку. не проверял

<?php
if ($handle = opendir('./')) {
  echo "<p>Файлы:<br>";

  while (false !== ($file = readdir($handle))) {
      echo "$file<br>";
  }

  closedir($handle);
}
?>

как будет время добавлю еще инфы.
 
смысл в чем. грубо говоря, к строке запроса прибавляешь параметр - путь просматриваемой папки. эту переменную подставляешь вместо opendir('./')
PM ICQ   Вверх
Alx
Дата 30.10.2006, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



JSman, 
кхм.. это немножко другое.. php читает файы на сервере.. как же он может читать файлы на клиенте?? это ж серверный язык..
тут действительно надо делать средствами JavaScript, JScript, VBScript, ActionScript (Flash)... что-нибудь из этого...

итак, ещё раз опишу задачу:

пользователь заходит на сайт http://qqq.ru/user/explorer/index.html

там скрипт (JavaScript, JScript, VBScript, ActionScript (Flash)) лезет к нему на C:/ (к примеру) и выводит ему список файлов и папок на C:
далее юзер выбирает папку, допустим, WINDOWS, снова ждёт, пока скрипт сканит и эту папку и выводит ему список виндовских файлов и папок.

вот, что конкретно нужно. для этого идеально подходит пример с запуском bat-файла, но он работает только если скрипт находится на компьютере юзера! если скрипт находится в Инете ( по адресу http://qqq.ru/user/explorer/index.html ), IE (проверял в нём) запрещает запуск bat-файла из скрипта!!!

в связи с этим вопрос : как ещё можно вывести древо каталогов на юзеровском компе? (кстати, желательно и с объёмом в байтах)

Добавлено @ 10:45 
мне, ессно не нужно, чтобы всё работало и с кликами юзеров. просто функция, в параметрах к которой передаётся папка, после чего она возвращает её содержимое. остальное я всё сделаю сам.


--------------------
PM MAIL WWW ICQ   Вверх
dstorm81
Дата 30.10.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



Alx c узнать чтов папках? имхо ни как нельзя кроссбраузерно (впаривание вирей не в счет ? smile)
только под ослом такое возможно, да и то если разрешить activX

Добавлено @ 12:26 
Код

<FORM>
<INPUT TYPE="button" 
Value=" Display  C " 
onClick="window.open('file:///C|/', 'display', 'scrollbars=0')">
</FORM>

вот так везде открывает но если только файл сохранен ЛОКАЛЬНО!!!!!


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
pythonwin
Дата 30.10.2006, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(dstorm81 @  30.10.2006,  19:22 Найти цитируемый пост)
вот так везде открывает но если только файл сохранен ЛОКАЛЬНО!!!!! 

можно ещё за ПК запустить CGIHTTPServer и из инета обращаться к нему.
PM WWW GTalk Jabber   Вверх
JSman
Дата 30.10.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



если кросс-браузерно, то использование плагинов к браузеру, если браузер базируется на нетскейпе или опера. с ие проще, как сказали выше использование ActiveX. больше никак.

вообще нужно подумать о целесообразности использования данного метода. если у тебя серьезный ресурс и пользователи могут доверять, то это отдельный разговор. и плагины здесь актуальны. 

но вообще просьба о скачивании плагина является плохим тоном. и сайты, например agava, если и используют специфические технологии, то выбирают ие (например при требовании использования протокола https).

поэтому, если ты планируешь создать что-то вроде веб-панели, то нужно остановиться на ие. 
а именно разумнее будет использовать WSC (windows script component). компонент будет мало весить и его можно подписать, то есть при его установке не будет больше появляться окно об активном содержимом.
PM ICQ   Вверх
Alx
Дата 30.10.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



нет, плагины мне не подходят...
мне нужно чтобы всё работало сразу..

но всё равно, всем спасибо, буду думать..

Добавлено @ 17:08 
нет, плагины мне не подходят..
нужно, чтобы всё работало сразу..

но всё равно, всем спасибо, буду думать..

Добавлено @ 17:08 
нет, плагины мне не подходят..
нужно, чтобы всё работало сразу..

но всё равно, всем спасибо, буду думать..

Добавлено @ 17:10 
нет, плагины мне не подходят..
нужно, чтобы всё работало сразу..

но всё равно, всем спасибо, буду думать..


--------------------
PM MAIL WWW ICQ   Вверх
pythonwin
Дата 31.10.2006, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(Alx @  31.10.2006,  00:07 Найти цитируемый пост)
но всё равно, всем спасибо, буду думать.. 

попробуй вот это:
Цитата(pythonwin @  30.10.2006,  19:56 Найти цитируемый пост)
можно ещё за ПК запустить CGIHTTPServer и из инета обращаться к нему. 


PM WWW GTalk Jabber   Вверх
Alx
Дата 31.10.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



да не) не будет юзер ниче у ся запускать) задача именно в том' чтобы все работало сразу' без каких-либо действий юзера.. Ну разве что он может нажать "ok" для установки плагина..
только плагины я тем более писать не умею..(


--------------------
PM MAIL WWW ICQ   Вверх
Alx
Дата 14.11.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



 smile ну подскажите) что-нибудь конкретное) хотя бы одно.
только поподробнее)
если Java|VB|Action -Script нельзя, может, правда плагин?
только как? smile

хотя мне почему-то кажется, что на флеш - точно можно сделать... smile 


--------------------
PM MAIL WWW ICQ   Вверх
pythonwin
Дата 15.11.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(Alx @  14.11.2006,  21:48 Найти цитируемый пост)
smile ну подскажите) что-нибудь конкретное) хотя бы одно.
только поподробнее)

http://forum.vingrad.ru/index.php?showtopi...st&p=906248
+ можно в личку smile
PM WWW GTalk Jabber   Вверх
dstorm81
Дата 16.11.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



вот это под винду только, переход вверх сделай сам  smile
Код

<html>
<head>
<script>
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s;
function ShowFileList(folderspec)
{
f=fso.GetFolder(folderspec);
fc=new Enumerator(f.SubFolders);
s='';
for(; !fc.atEnd(); fc.moveNext())
    {
    a=new String(fc.item()).replace(/\\/g,'\\\\').replace(/ /g,'%20');
    s+="<a href=javascript:ShowFileList('"+a+"\\\\')>"+fc.item()+"</a><br>\r\n";
    }
ff = new Enumerator(f.Files);
for(; !ff.atEnd(); ff.moveNext())
    {
    s+= ff.item() + "<br>";
    }

document.getElementById("funny").innerHTML=s;
}
</script>
</head>
<body>
<div id="funny">
<a href='#' value="" onclick="ShowFileList('c:\\')">показать папки и файлы в С:\</a>
</div>
</body>
</html>



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
pythonwin
Дата 16.11.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



dstorm81, прикольно - ++1 smile
PM WWW GTalk Jabber   Вверх
Alx
Дата 17.11.2006, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



ррр из нета опять не пашет :/
Цитата

Невозможно создание объекта сервером программирования объектов

...
http://alx.vingrad.ru/other/show_user_files.html
(код dstorm81 без изменений..)


--------------------
PM MAIL WWW ICQ   Вверх
dstorm81
Дата 17.11.2006, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



млин, точно, выходит полная лажа, остается писать плагин для осла smile
хотя попробуй еще через флэш, я где-то пример видел как через флэш узнают какие шрифты у пользователя стоят, а вот узнать какие файлы... не уверен но с большой долей уверенности могу сказать что нельзя

для лисы, можно попробовать расширения, которое будет следить за адресной строкой и если урл совпадает что-то делать.. это надо копать в сторону мозилловский форумов. хотя не уверен ... но может и получится что...
а вообще для чего такой гимморой нужен, хотя б\п тема интересная... может можно через input type="file"
обойтись smile


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
Alx
Дата 17.11.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



да я хотел попробывать webftp сделать...

Добавлено @ 23:31 
хочется услышать мнение модеров форума  smile 


--------------------
PM MAIL WWW ICQ   Вверх
dstorm81
Дата 24.11.2006, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



2Alx
нашел способ чтобы тот, мною ранее написанный, код заработал (MSIE 6.0SP2, виндаХР не обновлялась из нета ни разу) и MSIE 7 (алгоритм тотже)
здесь немного усложненный вариант скрипта http://dstorm.jino-net.ru/dsscripts/activex/DiskViewer.rar
итак

заходим на страницу 
сервис>свойства обозревателя>безопасность>
выбираем местная интрасеть> 
нажимаем кнопку узлы> дополнительно>добавляем узел в зону (http://alx.vingrad.ru). нажимаем Ок
опять же на местной интрасети>кнопка другой>ищем использование элементов ActiveX не помеченных как безопасные>ставим галку предлагать/разрешить. Все теперь по переходу на этот узел все будет запускаться.
тут проблема в том, что надо много двигать мышкой, чтобы включить сайт в узел интрасети.
здесь может помочь reg файл который поставит сайт куда надо и сделает исправления в реестре.
НО вышеуказанные действия изменяют настройки всех интранет ресурсов, что не есть хорошо для админа сети (безопасника)
я тут посмотрел по опциям, увидел что галка стоит на [предлагать запуск] на узлах которые работают через https протокол 
то есть попробуй на сайте использовать этот протокол


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
butionok
Дата 22.4.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2005

Репутация: 1
Всего: 3



Вот то, что я на эту тему сделал

броузер

Работает естественно только в ИЕ.
--------------------
Ненавижу убогую Оперу.
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.