Гость
Map
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Скачать файл из интернета / 17 сообщений из 17, страница 1 из 1
26.03.2019, 16:15
    #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
27.03.2019, 18:13
    #39792510
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Можно открыть этот линк в Microsoft Web Browsere.
Как сохранить содержимое MWB в PDF?
...
Рейтинг: 0 / 0
27.03.2019, 18:22
    #39792516
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Скорее всего дело в политиках безопасности. Где-то уже сталкивался...
...
Рейтинг: 0 / 0
27.03.2019, 18:25
    #39792519
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
spas2001,
Если на сервере открываю IE и вношу линк ( http://www.axmag.com/download/pdfurl-guide.pdf), то файл открывается и его можно сохранить на локальном диске.
Безопасность должна была это тоже присечь.
...
Рейтинг: 0 / 0
27.03.2019, 19:00
    #39792534
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Код: sql
1.
ole_browser.Object.Execwb(4,2,'C:\111.pdf')


Выдает окно выбора имени. Нужно сделать без этого окна.
Как?
...
Рейтинг: 0 / 0
27.03.2019, 21:34
    #39792623
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Там доступ к объектной модели. Это не то же самое, что пользователь
...
Рейтинг: 0 / 0
28.03.2019, 12:55
    #39792903
Valeri395
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Здесь явно с безопасностью на сервере. АД поднят? Надо смотреть от какого пользователя запускается функция.
...
Рейтинг: 0 / 0
29.03.2019, 14:19
    #39793603
Valeri395
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Разобрались с получением файла ?
...
Рейтинг: 0 / 0
31.03.2019, 17:47
    #39794289
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Valeri395,
Нет
...
Рейтинг: 0 / 0
31.03.2019, 23:06
    #39794356
Valeri395
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Riska,

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


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

Вы упорно сохраняете на диск С:. Попробуйте сделать как я описал выше. Если что то не понятно - задавайте вопросы.
Если у вас все работает на локальном компе, то скрип работает правильно. Просто при работе на локальной машине пользователь под которым вы работаете обычно имеет права администратора. На сервере нормальный администратор никогда не даст вам прав админа.
...
Рейтинг: 0 / 0
02.04.2019, 01:36
    #39794902
AIS
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
02.04.2019, 09:14
    #39794952
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
AIS,
Нет.
Тоже выдает окно "Сохранить как"
...
Рейтинг: 0 / 0
02.04.2019, 09:24
    #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
04.04.2019, 00:00
    #39796042
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скачать файл из интернета
Riska,
может это будет полезным..
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Скачать файл из интернета / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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