Beste forumers,
Ik ben bezig met een activex component onder delphi om zeg maar zo'n foto-uploader te maken net als je hebt bij msn-communities. Nu ben ik bezig met het deel dat de bestanden upload naar de php pagina. Hij moet per file de foto & Omschrijving naar insertpic.php posten. Nu vond ik hier een mooi component voor van indy. Maar het werkt nog niet helemaal, zelfs de de demo ervoor niet.
Post ik het vanuit m'n browser, dan werkt het. DOe ik het met delphi code, werkt het NIET. Hier mijn php code:
Als ik vanaf de browser post krijg ik dit in return als ik een print_r($HTTP_POST_FILES);
en via delphi krijg ik dit:
Heeft iemand enig idee waar dit aan kan liggen?
En nog iets, kan er gelijk wel bij, weet iemand hoe ik dan vanaf de html als ik het activex component aanroepen er een variable aan mee kan geven (voor het sessieid, zodat ik die mee kan posten?).
Ik ben bezig met een activex component onder delphi om zeg maar zo'n foto-uploader te maken net als je hebt bij msn-communities. Nu ben ik bezig met het deel dat de bestanden upload naar de php pagina. Hij moet per file de foto & Omschrijving naar insertpic.php posten. Nu vond ik hier een mooi component voor van indy. Maar het werkt nog niet helemaal, zelfs de de demo ervoor niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| var
ResponseStream: TMemoryStream;
MultiPartFormDataStream: TMsMultiPartFormDataStream;
begin
MultiPartFormDataStream := TMsMultiPartFormDataStream.Create;
ResponseStream := TMemoryStream.Create;
try
IdHttp1.Request.ContentType := MultiPartFormDataStream.RequestContentType;
MultiPartFormDataStream.AddFormField('PersonName', edtPersonName.Text);
MultiPartFormDataStream.AddFormField('Description', edtDescription.Text);
MultiPartFormDataStream.AddFile('upload', edtFile.Text, edtMIMEType.Text);
{ You must make sure you call this method *before* sending the stream }
MultiPartFormDataStream.PrepareStreamForDispatch;
MultiPartFormDataStream.Position := 0;
ShowMessage(IdHTTP1.Post(edtHost.Text, MultiPartFormDataStream));
finally
MultiPartFormDataStream.Free;
ResponseStream.Free;
end; |
Post ik het vanuit m'n browser, dan werkt het. DOe ik het met delphi code, werkt het NIET. Hier mijn php code:
code:
1
| move_uploaded_file($upload, $TK_DOWNLOAD_DIR.$upload_name); |
Als ik vanaf de browser post krijg ik dit in return als ik een print_r($HTTP_POST_FILES);
code:
1
2
3
4
5
6
7
8
9
10
11
| Array
(
[upload] => Array
(
[name] => 351010[1].gif
[type] => image/gif
[tmp_name] => E:\WINNT2\php281.tmp
[size] => 7125
)
) |
en via delphi krijg ik dit:
code:
1
2
3
4
5
6
7
8
9
| Array
(
[upload] => Array
(
[name] => 351010[1].gif
[type] => image/gif
)
) |
Heeft iemand enig idee waar dit aan kan liggen?
En nog iets, kan er gelijk wel bij, weet iemand hoe ik dan vanaf de html als ik het activex component aanroepen er een variable aan mee kan geven (voor het sessieid, zodat ik die mee kan posten?).