idHTTP, wysylanie pliku na serwer przez POST

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez shycat » niedziela, 21 lutego 2010, 23:29

Witam, mam skrypt PHP na serwerze, przez ktory mozna upload'owac na serwer pliki. W moim programie chce wyslac plik metoda post do tego formularza. Mam taki kawalek kodu:

Kod: Zaznacz cały
    TIdMultiPartFormDataStream *src = new TIdMultiPartFormDataStream;

   //...

    IdHTTP1->Post('http://przyklad.pl/skrypt.php', src);


No i podczas kompilacji otrzymuje blad:

Kod: Zaznacz cały
Undefined symbol 'TIdMultiPartFormDataStream'


Uzywam BCB Enterprice, w ktorym Indy bylo juz od poczatku wgrane... co powinnam zrobic w takiej sytuacji?
Avatar użytkownika
shycat
Homos antropiczny
Homos antropiczny
 
Posty: 51
Dołączył(a): środa, 20 sierpnia 2008, 12:37
Lokalizacja: Śląsk
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 2006, Delphi 7
Gadu Gadu: 26712716
    Windows 7Firefox

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez Cyfrowy Baron » poniedziałek, 22 lutego 2010, 10:03

Z komunikatu błędu wynika, że TIdMultiPartFormDataStream nie jest zdefiniowany. Ten błąd będzie występował jeżeli nie włączysz do projektu biblioteki IdHTTP.hpp. Patrząc na Twój kod widać, że używasz komponentu IdHTTP1, więc wrzucając ten komponent na formularz biblioteka IdHTTP.hpp powinna zostać automatycznie dodana do pliku nagłówkowego. Skoro jednak tak się nie stało, to może oznaczać, że coś robisz źle. Gdybyś uzupełniła profil i podała w jakim środowisku programujesz, wtedy można by powiedzieć coś więcej.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez shycat » poniedziałek, 22 lutego 2010, 11:51

Profil zaktualizowany ;) ... co do idHTTP, jezeli sam ten komponent umieszczam na formie to nie ma zadnego problemu, w innej czesci programu uzywam tego komponentu i GET'u, wszystko dziala bez problemu... sama metoda POST bez "TIdMultiPartFormDataStream" rowniez dziala bez problemu... uzywane naglowki:

Kod: Zaznacz cały
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <IdBaseComponent.hpp>
#include <IdComponent.hpp>
#include <IdHTTP.hpp>
#include <IdTCPClient.hpp>
#include <IdTCPConnection.hpp>


Problem moze dotyczy tego, ze do mojej wersji BCB, dolaczony zestaw Indy jest "stary" ... nie wiem jaka jest to wersja, ale patrzac na ikonki komponentow mozna stwierdzic, ze pierwszej mlodosci one nie sa... (screen w zalaczniku)
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
shycat
Homos antropiczny
Homos antropiczny
 
Posty: 51
Dołączył(a): środa, 20 sierpnia 2008, 12:37
Lokalizacja: Śląsk
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 2006, Delphi 7
Gadu Gadu: 26712716
    Windows 7Firefox

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez Cyfrowy Baron » poniedziałek, 22 lutego 2010, 11:58

By używać klasy TIdMultiPartFormDataStream trzeba w pliku nagłówkowym dodać bibliotekę IdHTTP.hpp.

Kod: Zaznacz cały
#include "IdHTTP.hpp"
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez shycat » poniedziałek, 22 lutego 2010, 12:44

Cyfrowy Baronie, w kawalku w ktorym podalam biblioteki ktorych uzywa moj problem jest ta biblioteka... ;) (pozycja trzecia od dolu)
Avatar użytkownika
shycat
Homos antropiczny
Homos antropiczny
 
Posty: 51
Dołączył(a): środa, 20 sierpnia 2008, 12:37
Lokalizacja: Śląsk
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 2006, Delphi 7
Gadu Gadu: 26712716
    Windows 7Firefox

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez Witold » poniedziałek, 22 lutego 2010, 12:48

spróbuj:

Kod: Zaznacz cały
#include <IdMultipartFormData.hpp>
Avatar użytkownika
Witold
Konstrukcjonista
Konstrukcjonista
 
Posty: 223
Dołączył(a): piątek, 29 sierpnia 2008, 10:53
Podziękował : 1
Otrzymał podziękowań: 14
Kompilator: bcb6, Turbo C++ Explorer
    AmigaAWeb

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez Cyfrowy Baron » poniedziałek, 22 lutego 2010, 13:54

Cyfrowy Baronie, w kawalku w ktorym podalam biblioteki ktorych uzywa moj problem jest ta biblioteka... ;) (pozycja trzecia od dolu)


Napisałeś ten post w sposób tak enigmatyczny, iż nie zrozumiałem. W C++Builder 2010 wystarczy włączyć bibliotekę IdHTTP.hpp

Tak jak podał Witold we wcześniejszych wersjach czyli wszystkich przed C++Builder 2010 trzeba dołączyć bibliotekę IdMultipartFormData.hpp, ale to może nie wystarczyć, w pliku źródłowym pod wpisem #pragma resource "*.dfm" dodaj wpis #pragma link "indy.lib", gdyż trzeba włączyc do projektu bibliotekę indy.lib.

Kod: Zaznacz cały
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

#pragma link "indy.lib"  // <- tutaj....................................

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: idHTTP, wysylanie pliku na serwer przez POST

Nowy postprzez shycat » poniedziałek, 22 lutego 2010, 14:09

Zastosowalam sie do polecen. Wszystko dziala, dzieki :)
Avatar użytkownika
shycat
Homos antropiczny
Homos antropiczny
 
Posty: 51
Dołączył(a): środa, 20 sierpnia 2008, 12:37
Lokalizacja: Śląsk
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 2006, Delphi 7
Gadu Gadu: 26712716
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron