Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Folder upload / 12 сообщений из 12, страница 1 из 1
16.08.2006, 12:57
    #33921371
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Приветствую!
Собственно основной вопрос в теме. Как???
Требуется с клиента сделать upload папки с содержимым на сервер в одну папку без сохранения структуры папок. Причем надо знать исходную структуру папок, которая затем будет храниться на SQL-сервере

Разумеется, сначала поискал и здесь и на гугле. Результат неутешительный. Вот что янарыл.
Поправте меня, если я не прав:

1. Это сделать стандартными средствами НЕВОЗМОЖНО!

2. Есть только 2 варианта:
a) использовать ActiveX или Java applet на клиенте, с их помощью можно получить доступ к файловой системе клиента и сделать upload, соответственно требуется разрешение на установку на клиенте
b) сжать папку с содержимым в один файл и разжать на сервере, НО как получить доступ к файловой системе клиента, чтобы сохранить структуру папок на SQL-сервере? Все равно потребуется ActiveX?

3. Есть ли еще способ? Может с помощью web services, не представляю как. Или своих web server control? Хотя сомневаюсь.

Если все так, помогите, не дайте пропасть :) Никогда не писал ActiveX (на чем их хоть пишут в VS.Net 2003. только на С++?). Может есть пример, бесплатные коды?

Заранее спасибо всем!
...
Рейтинг: 0 / 0
16.08.2006, 17:51
    #33922866
Dima_XY3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
вы совершенно правы!

могу посоветовать использовать компоненты от 3их разработчиков, например от http://persits.com/
- - - - -
the truth is out there
...
Рейтинг: 0 / 0
16.08.2006, 18:28
    #33922990
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, Dima_XY3, Вы писали:

D_X>вы совершенно правы!

D_X>могу посоветовать использовать компоненты от 3их разработчиков, например от http://persits.com/

Большое спасибо за ссылку, очень интересно. Только ведь они продают без исходников :(
...
Рейтинг: 0 / 0
16.08.2006, 20:07
    #33923202
Mike Chaliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, Dima_XY3, Вы писали:

D_X>вы совершенно правы!

D_X>могу посоветовать использовать компоненты от 3их разработчиков, например от http://persits.com/

D_X>
данное сообщение получено с www.gotdotnet.ru
D_X>ссылка на оригинальное сообщение


А я могу посоветовать вообще отказаться от такой идеи. Надеяться на то что у активХ всегда будет доступ к диску помойму недальновидно. Хотя если пользователи автора, доверяют автору.. ;).
...
Рейтинг: 0 / 0
17.08.2006, 10:34
    #33923877
Sinclair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, Valid777, Вы писали:

V>1. Это сделать стандартными средствами НЕВОЗМОЖНО!
Если под "стандартными средствами" имеется в виду "голый браузер" то да — невозможно
V>2. Есть только 2 варианта:
V> a) использовать ActiveX или Java applet на клиенте, с их помощью можно получить доступ к файловой системе клиента и сделать upload, соответственно требуется разрешение на установку на клиенте
Ага и разрешение доступаться к файловой системе. Резко уменьшает шансы на успех.
V> b) сжать папку с содержимым в один файл и разжать на сервере, НО как получить доступ к файловой системе клиента, чтобы сохранить структуру папок на SQL-сервере? Все равно потребуется ActiveX?
Не надо никакого ActiveX. Проще всего рассчитывай на то, что пользователь сделает стандартное Send to compressed(zipped) folder. Или аналогичным образом создаст зип сторонними утилитами. В .zip есть вся структура. Научись читать zip файлы, и будет тебе щасте.

V>3. Есть ли еще способ? Может с помощью web services, не представляю как. Или своих web server control? Хотя сомневаюсь.
Есть еще несколько способов, работающих под виндой не древнее XP. 1.1.4 stable rev. 510
...
Рейтинг: 0 / 0
17.08.2006, 12:38
    #33924418
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, Mike Chaliy, Вы писали:

MC>Здравствуйте, Dima_XY3, Вы писали:

D_X>>вы совершенно правы!

D_X>>могу посоветовать использовать компоненты от 3их разработчиков, например от http://persits.com/

D_X>>
данное сообщение получено с www.gotdotnet.ru
D_X>>ссылка на оригинальное сообщение


MC>А я могу посоветовать вообще отказаться от такой идеи. Надеяться на то что у активХ всегда будет доступ к диску помойму недальновидно. Хотя если пользователи автора, доверяют автору.. ;).

К сожалению, отказаться нельзя :( Предполагается, что пользователи безоговорочно доверяют автору и дадут разрешение на доступ к диску. НО! Доверяю ли я авторам этого ActiveX? Исходники они не дают :( Поэтому и хотелось бы увидеть как это пишется.
Ну не верю! Неужели никто, никогда не сталкивался с подобной проблемой и не писал ActiveX для этой цели? Или это настолько сложно? Продают их, надо сказать, недешево.
...
Рейтинг: 0 / 0
17.08.2006, 12:40
    #33924426
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Valid777, Вы писали:

V>>1. Это сделать стандартными средствами НЕВОЗМОЖНО!
S>Если под "стандартными средствами" имеется в виду "голый браузер" то да — невозможно
V>>2. Есть только 2 варианта:
V>> a) использовать ActiveX или Java applet на клиенте, с их помощью можно получить доступ к файловой системе клиента и сделать upload, соответственно требуется разрешение на установку на клиенте
S>Ага и разрешение доступаться к файловой системе. Резко уменьшает шансы на успех.
V>> b) сжать папку с содержимым в один файл и разжать на сервере, НО как получить доступ к файловой системе клиента, чтобы сохранить структуру папок на SQL-сервере? Все равно потребуется ActiveX?
S>Не надо никакого ActiveX. Проще всего рассчитывай на то, что пользователь сделает стандартное Send to compressed(zipped) folder. Или аналогичным образом создаст зип сторонними утилитами. В .zip есть вся структура. Научись читать zip файлы, и будет тебе щасте.

V>>3. Есть ли еще способ? Может с помощью web services, не представляю как. Или своих web server control? Хотя сомневаюсь.
S>Есть еще несколько способов, работающих под виндой не древнее XP.

Заинтриговали :) Что за способы?
...
Рейтинг: 0 / 0
17.08.2006, 13:10
    #33924552
mclabman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Например, так.

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <script language="javascript">
        function doit()
        {
            var stream = new ActiveXObject("adodb.stream");
            stream.Type = 1;
            stream.Open();
            stream.LoadFromFile("c:\\temp\\1.txt");
           
            var req = new ActiveXObject("msxml2.serverxmlhttp.6.0");
            req.open("POST", "http://microsoft.com", false);
            req.send(stream);
            alert("sent " + stream.Position + " bytes");
        }
    </script>
</head>
<body>
<input type="button" value="test" onclick="doit()" />
</body>
</html>

Домен должен быть в зоне Надежные узлы.
6.0 может быть 3.0, 4.0, 5.0 в зависимости от версии ОС/SP.

Т.е. не надо писать дополнительные ActiveX - все уже написано и установлено.
...
Рейтинг: 0 / 0
17.08.2006, 13:27
    #33924638
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, mclabman, Вы писали:

M>Например, так.

M><html xmlns="http://www.w3.org/1999/xhtml" >
M><head>
M> <script language="javascript">
M> function doit()
M> {
M> var stream = new ActiveXObject("adodb.stream");
M> stream.Type = 1;
M> stream.Open();
M> stream.LoadFromFile("c:\\temp\\1.txt");

M> var req = new ActiveXObject("msxml2.serverxmlhttp.6.0");
M> req.open("POST", "http://microsoft.com", false);
M> req.send(stream);
M> alert("sent " + stream.Position + " bytes");
M> }
M> </script>
M></head>
M><body>
M><input type="button" value="test" onclick="doit()" />
M></body>
M></html>

M>Домен должен быть в зоне Надежные узлы.
M>6.0 может быть 3.0, 4.0, 5.0 в зависимости от версии ОС/SP.

M>Т.е. не надо писать дополнительные ActiveX — все уже написано и установлено.

M>
данное сообщение получено с www.gotdotnet.ru
M>ссылка на оригинальное сообщение


Спасибо за пример, будем изучать. А как получить доступ к файловой системе (т.е. прочесть структуру папок для upload) Вот так? new ActiveXObject( 'Scripting.FileSystemObject' ) или что-то подобное?
...
Рейтинг: 0 / 0
17.08.2006, 14:50
    #33925028
mclabman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Правильно догадался.
Проблема возникнет, когда потребуется предложить пользователю выбрать папку. Ищи BrowseForFolder.
...
Рейтинг: 0 / 0
18.08.2006, 00:34
    #33926455
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, mclabman, Вы писали:

M>Правильно догадался.
M>Проблема возникнет, когда потребуется предложить пользователю выбрать папку. Ищи BrowseForFolder.

В ябочко :) пока все это дело изучал, еще не прочел последнее сообщение и именно в эту проблему и уперся :???:
Еще раз спасибо за новую наводку :)
...
Рейтинг: 0 / 0
18.08.2006, 14:41
    #33928396
Valid777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Folder upload
Здравствуйте, mclabman, Вы писали:

M>Правильно догадался.
M>Проблема возникнет, когда потребуется предложить пользователю выбрать папку. Ищи BrowseForFolder.

Не все так гладко :( При попытке использовать BrowseForFolder — возникает ошибка permission denied, помещение в trust sites не помогает. Можно использовать только как hta-файл, НО тогда опять проблема как из hta передать в aspx структуру папок с файлами (возможно, достаточно большую)?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Folder upload / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]