Вверх ↑
Этот топик читают: Гость
Ответов: 198
Рейтинг: 2
#1: 2013-12-17 07:24:32 ЛС | профиль | цитата
Приветствую всех!

Знаю как отправить файл, знаю как отправить запрос, а вот как отправить все вместе не знаю
Собственно вот пример формы в HTML:

<form action="downloads_files" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="text" name="login" value="" />
<input type="text" name="pass" value="2" />
<input type="submit" />
</form>

Собственно с формы все загружается без проблем, а вот отправить с программы пока не знаю как
карма: 0

0
Ответов: 4631
Рейтинг: 749
#2: 2013-12-17 12:28:45 ЛС | профиль | цитата
http://svn.hiasm.com/packs/delphi/Example/Internet/Upload_File_on_Server.sha
Дополнительные поля добавить в HTTP_FileUpload.VarsList
карма: 26

0
Ответов: 198
Рейтинг: 2
#3: 2013-12-17 23:43:03 ЛС | профиль | цитата
Может подскажите, как отправить две переменные на точку VarsValue? Переменные там...

code_32629.txt
карма: 0

0
файлы: 1code_32629.txt [973B] [224]
Ответов: 4631
Рейтинг: 749
#4: 2013-12-18 12:47:49 ЛС | профиль | цитата
Пробуй так:
code_32630.txt
карма: 26

0
файлы: 1code_32630.txt [1.2KB] [304]
Гость
Ответов: 17029
Рейтинг: 0
#5: 2013-12-18 14:39:14 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 12:20:22
карма: 0

0
Ответов: 198
Рейтинг: 2
#6: 2013-12-18 14:57:06 ЛС | профиль | цитата
Странная авторизация на форуме, и ники у не авторизированных странные...
------------ Дoбавленo в 14.57:
Вроде разобрался с переменными, но все равно чет не пашет...


Add(MainForm,12591465,84,126)
{
Width=413
Height=407
}
Add(HTTP_FileUpload,3024452,294,273)
{
Name="file"
VarsList=#4:pass|5:login|
Point(doVarsList)
Point(VarsValue)
link(onBuild,5234297:doAdd,[])
link(FileName,7614253:Text,[])
link(VarsValue,9686501:GetData,[(314,212)(349,212)])
AddHint(178,-70,28,13,Name)
}
Add(Button,11953298,182,273)
{
Left=120
Top=330
Width=125
Height=30
Caption="Upload"
link(onClick,3024452:doBuild,[])
}
Add(ODialog,16763806,238,168)
{
Title="Укажите файл для загрузки"
FileName=""
link(onExecute,7614253:doText,[])
}
Add(Edit,7614253,294,168)
{
Left=30
Top=10
Width=255
Text=""
}
Add(Button,9542592,182,168)
{
Left=295
Top=10
Width=80
Caption="Обзор"
link(onClick,16763806:doExecute,[])
}
Add(MultiElementEx,9686501,343,168)
{
}
BEGIN_SDK
Add(EditMultiEx,14127821,21,21)
{
VarCount=#7:GetData|
DataCount=#4:Data|5:Data1|
link(GetData,1260066:GetData,[(27,151)(55,151)])
}
Add(DoData,12053862,147,49)
{
Data=Integer(5555)
link(onEventData,1224693:doWork2,[])
}
Add(HubEx,1224693,287,49)
{
Angle=3
link(onEvent,1260066:doData,[(291,42)(43,42)(43,55)])
}
Add(EventFromData,1260066,49,49)
{
link(onEvent,9081596:doCompare,[])
}
Add(If_else,9081596,98,49)
{
Op2=String(login)
link(onTrue,12053862:doData,[])
link(onFalse,6300632:doCompare,[(138,62)(138,104)])
}
Add(If_else,6300632,147,98)
{
Op2=String(pass)
link(onTrue,10512379:doData,[])
}
Add(DoData,10512379,196,98)
{
Data=String(1234)
link(onEventData,1224693:doWork3,[(291,104)])
}
END_SDK
Add(Memo,5234297,385,273)
{
Left=25
Top=35
Width=350
Height=285
ScrollBars=2
}

карма: 0

0
Ответов: 4631
Рейтинг: 749
#7: 2013-12-18 15:30:10 ЛС | профиль | цитата
Покопался в коде. Нет слов, одни выражения:
1) С точки VarsValue можно получить только одно значение, причем для всех переменных в списке VarsList. А, кажется, имя переменной подается "вверх", причем в наружной схеме нужно городить кучу компонентов для проверки имени и выдачи значения именно для данной переменной.

2) Утечка памяти в методе SetText: список создается каждый раз при вызове метода, но уничтожается только последний в методе THIHTTP_FileUpload.Destroy;
3) Можно было бы хотя-бы попытаться рандомно генерировать boundary и проверять её наличие в отправляемом контенте.

По поводу №1: можно VarsValues трактовать как список значений для соответствующих переменных в VarsList. Если точка VarsValues не подключена - предполагаем, что переменные статически заданы в VarsList в виде [i]name1=value1
name2=value2...[/i] и парсить VarsList соответствующе. Тогда на VarsValues можно подать значения через FormatStr.
карма: 26

0
Ответов: 198
Рейтинг: 2
#8: 2013-12-19 14:17:25 ЛС | профиль | цитата
Нифига не получается почему-то, хотя вроде бы запрос формируется правильно...

Подскажите, вроде бы как запрос можно вручную создать, нужный запрос я отснифил...

Как я понимаю, отправка файла идет бинарными данными. Вопрос, как перевести файл в бинарные данные?
карма: 0

0
файлы: 1code_32636.txt [1.1KB] [217]
Ответов: 4631
Рейтинг: 749
#9: 2013-12-19 14:26:07 ЛС | профиль | цитата
Вот так это было задумано автором компонента:
code_32637.txt

SkyPrinceRus писал(а):
как перевести файл в бинарные данные?
StreamConvertor
карма: 26

0
файлы: 1code_32637.txt [1.5KB] [360]
Ответов: 198
Рейтинг: 2
#10: 2013-12-19 14:39:00 ЛС | профиль | цитата
Netspirit, Спасибо, попробую завтра...
карма: 0

0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)