powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Скачать файл из интернета
17 сообщений из 17, страница 1 из 1
Скачать файл из интернета
    #39791680
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
function long URLDownloadToFileA(long pCaller, string szURL, string szFileName, long dwReserved, long lpfnCB) Library "urlmon.dll" Alias for "URLDownloadToFileW"
function long DeleteUrlCacheEntry (string lpszUrlName) Library "wininet.dll" alias for "DeleteUrlCacheEntryW"



Код: sql
1.
2.
DeleteUrlCacheEntry('http://www.axmag.com/download/pdfurl-guide.pdf')
URLDownloadToFileA(0, 'http://www.axmag.com/download/pdfurl-guide.pdf', 'c:\111.pdf', 0, 0)



РВ.ехе находится на сервере.
Клиенты подключаются через интернет.
У каждого клиента на сервере есть своя папка с открытым доступом.
Нужно скачать файл из интернета и засунуть в соответствующую папку.

Пытаюсь скачать файл через функцию URLDownloadToFileA.
На локальном компе все нормально.
На сервере это не проходит. URLDownloadToFileA возвращает "-1".
В IE нашего сервера указано, что с данного сайта (www.axmag.com) можно скачивать.
Если на сервере открываю IE и вношу линк ( http://www.axmag.com/download/pdfurl-guide.pdf), то файл открывается и его можно сохранить на локальном диске.
Какие могут еще быть ограничения?
Другой способ скачивания файлов?
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39792510
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно открыть этот линк в Microsoft Web Browsere.
Как сохранить содержимое MWB в PDF?
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39792516
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего дело в политиках безопасности. Где-то уже сталкивался...
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39792519
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001,
Если на сервере открываю IE и вношу линк ( http://www.axmag.com/download/pdfurl-guide.pdf), то файл открывается и его можно сохранить на локальном диске.
Безопасность должна была это тоже присечь.
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39792534
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
ole_browser.Object.Execwb(4,2,'C:\111.pdf')


Выдает окно выбора имени. Нужно сделать без этого окна.
Как?
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39792623
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там доступ к объектной модели. Это не то же самое, что пользователь
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39792903
Valeri395
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь явно с безопасностью на сервере. АД поднят? Надо смотреть от какого пользователя запускается функция.
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39793603
Valeri395
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрались с получением файла ?
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794289
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeri395,
Нет
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794356
Valeri395
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Riska,

1. Никогда не сохраняйте в корень диска, а особенно С. Там особые разрешения по доступу.
2. Создайте поддиректорию. Назначьте ей права безопасности группе ВСЕ (Everyone) полный доступ.
3. Попробуйте из программы создать файл в этой директории. Если без ошибки нет, то пробуйте через скачать через функцию.
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794360
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska
Код: sql
1.
ole_browser.Object.Execwb(4,2,'C:\111.pdf')


Выдает окно выбора имени. Нужно сделать без этого окна.
Как?
Поменяйте 1-й параметр с OLECMDID_SAVEAS = 4 на OLECMDID_SAVE = 3
Код: sql
1.
ole_browser.Object.Execwb(3,2,'C:\111.pdf')
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794441
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,
Код: sql
1.
ole_browser.Object.Execwb(3,2,'C:\111.pdf')


Не работает.
Просто ничего не происходит.
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794534
Valeri395
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Riska,

Вы упорно сохраняете на диск С:. Попробуйте сделать как я описал выше. Если что то не понятно - задавайте вопросы.
Если у вас все работает на локальном компе, то скрип работает правильно. Просто при работе на локальной машине пользователь под которым вы работаете обычно имеет права администратора. На сервере нормальный администратор никогда не даст вам прав админа.
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794902
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaAIS,
Код: sql
1.
ole_browser.Object.Execwb(3,2,'C:\111.pdf')


Не работает.
Просто ничего не происходит.
А так, сохраняет в туже папку?
Код: sql
1.
ole_browser.Object.Execwb(4,2,'111.pdf')
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794952
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,
Нет.
Тоже выдает окно "Сохранить как"
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39794957
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это работает (через blob).
Объект:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
$PBExportHeader$n_inetresult.sru
forward
global type n_inetresult from internetresult
end type
end forward

global type n_inetresult from internetresult
end type
global n_inetresult n_inetresult

type prototypes
Function long CreateFile ( &
	string lpFileName, &
	ulong dwDesiredAccess, &
	ulong dwShareMode, &
	long lpSecurityAttributes, &
	ulong dwCreationDisposition, &
	ulong dwFlagsAndAttributes, &
	long hTemplateFile &
	) Library "kernel32.dll" Alias For "CreateFileW"

Function boolean CloseHandle ( &
	long hObject &
	) Library "kernel32.dll"

Function boolean WriteFile ( &
	long hFile, &
	blob lpBuffer, &
	ulong nNumberOfBytesToWrite, &
	Ref ulong lpNumberOfBytesWritten, &
	ulong lpOverlapped &
	) Library "kernel32.dll"

Function ulong GetTempPath ( &
	ulong nBufferLength, &
	Ref string lpBuffer &
	) Library "kernel32.dll" Alias For "GetTempPathW"

end prototypes
type variables
Blob iblob_data

// constants for CreateFile API function
Constant ULong INVALID_HANDLE_VALUE = -1
Constant ULong GENERIC_READ     = 2147483648
Constant ULong GENERIC_WRITE    = 1073741824
Constant ULong FILE_ATTRIBUTE_NORMAL = 128
Constant ULong FILE_SHARE_READ  = 1
Constant ULong FILE_SHARE_WRITE = 2
Constant ULong CREATE_NEW			= 1
Constant ULong CREATE_ALWAYS		= 2
Constant ULong OPEN_EXISTING		= 3
Constant ULong OPEN_ALWAYS			= 4
Constant ULong TRUNCATE_EXISTING = 5

end variables

forward prototypes
public function integer internetdata (blob data)
public function integer of_writefile (string as_filename, blob ablob_data)
public function string of_gettemppath ()
end prototypes

public function integer internetdata (blob data);// save the data to an instance variable
//
// Return - 1=Success, -1=Failure
//

iblob_data = data

Return 1

end function

public function integer of_writefile (string as_filename, blob ablob_data);ULong lul_file, lul_written
Boolean lb_rtn

// open file for write
lul_file = CreateFile(as_filename, GENERIC_WRITE, &
					FILE_SHARE_WRITE, 0, CREATE_ALWAYS, 0, 0)
If lul_file = INVALID_HANDLE_VALUE Then
	Return -1
End If

// write file to disk
lb_rtn = WriteFile(lul_file, ablob_data, &
					Len(ablob_data), lul_written, 0)

// close the file
CloseHandle(lul_file)

Return 1

end function

public function string of_gettemppath ();String ls_path
Integer li_buflen

li_buflen = 260
ls_path = Space(li_buflen)

GetTempPath(li_buflen, ls_path)

Return ls_path

end function

on n_inetresult.create
call super::create
TriggerEvent( this, "constructor" )
end on

on n_inetresult.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on



Скрипт на кнопке:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Inet iinet_base
n_inetresult in_irdata

Integer li_rc
String ls_filename

// instantiate internet service objects
Parent.GetContextService("Internet", iinet_base)
in_irdata = CREATE n_inetresult

SetPointer(HourGlass!)

li_rc = iinet_base.GetURL('http://www.axmag.com/download/pdfurl-guide.pdf', in_irdata)

If li_rc = 1 Then
	ls_filename = 'c:\123.pdf'
	in_irdata.of_WriteFile(ls_filename, in_irdata.iblob_data)
Else
   MessageBox("Error", "GetURL Failed")
End If
...
Рейтинг: 0 / 0
Скачать файл из интернета
    #39796042
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska,
может это будет полезным..
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Скачать файл из интернета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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