Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    invio di immagini tramite post

    Ciao Ragazzi, come va?

    stavo leggendo i 40 post che ci sono relativi all'invio di dati tramite metodo get o post realizzabile con php senza utilizzare un form.
    è tutto molto interessante e sopratutto utile,

    nessuno ha dovuto mai inviare dei file immagine o cmq dei file in genere?

    ho modificato uno script che c'era in uno dei vecchi post aggiungiendo e togliendo qualcosa... cercando di farlo con un po di logica, ma riesco a passare all'altro server soltanto variabili, non riesco a salvare nulla nella dir /tmp/xxx da poter per esempio copiare poi con il copy(src, dst)

    come si puo fare?

    Ciaoooo

  2. #2
    Ragazzi, allora è un problema parecchio difficile...
    a nessuno è capitato? non ci credo........ VVoVe:

  3. #3
    usa
    Codice PHP:
    move_uploaded_file($_FILES["[NOME CAMPO FILE]"]["tmp_name"], $_FILES["[NOME CAMPO FILE]"]["name"]); 
    per maggiori info: http://it.php.net/manual/it/function...oaded-file.php
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  4. #4
    atz....
    forse mi sono spiegato male.

    se riusci a caricare il file temporaneo nel server avrei risolto tutto... da li lo sposeterei, lo copierei, lo rinominerei...

    il problema è lo script che simula il post e invia il file... riporto un esempio sotto di uno script che funziona perfettamente, ma invia solo variabili:


    pagina sul primo server che invia le var
    <?php
    $sock = fsockopen("***.***.***.***", 80, $errno, $errstr, 30);
    if (!$sock) die("$errstr ($errno)\n");
    $data = "user=" . urlencode("username") . "&pass=" . urlencode("passname");
    fwrite($sock, "POST /file_upload.php HTTP/1.0\r\n");
    fwrite($sock, "Host: ***.***.***\r\n");
    fwrite($sock, "Content-type: application/x-www-form-urlencoded;\r\n");
    fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
    fwrite($sock, "Accept: */*\r\n");
    fwrite($sock, "\r\n");
    fwrite($sock, "$data\r\n");
    fwrite($sock, "\r\n");
    $headers = "";
    while ($str = trim(fgets($sock, 4096)))
    $headers .= "$str\n";

    echo "\n";

    $body = "";
    while (!feof($sock))
    $body .= fgets($sock, 4096);

    fclose($sock);
    echo $body;
    ?>

    pagina sul secondo server che riceve e stampa le var:
    <?php
    echo 'user: '.$user.'
    ';
    echo 'pass: '.$pass.'
    ';
    ?>


    ecco tutto cio funziona perfettamente, è la simulazione perfetta di un invio con metodo post...

    se io voglio inviarci dei file insieme a tutto questo come faccio??
    ho fatto molte prove leggendo la documentazione sugli header, sui protocolli... su tutto cio che potevo trovare in rete, sono anche riuscito a fargli copiare qualche cosa, ma l'immagine la tronca dopo aver scritto un certo numero di byte.

    Spero di essermi spiegato meglio, cmq grazie per la risposta.

    Aspetto...

  5. #5
    Ciao,
    puoi simulare anche il POST multipart/form-data con fsockopen, ma devi inserire i dati in una stringa piuttosto lunga e laboriosa da costruire.
    Ti consiglierei di usare CURL, per ragioni di prestazioni e semplicità

    http://it.php.net/manual/en/function.curl-setopt.php

    opzione CURLOPT_POSTFIELDS

    cerca tra i commenti l'esempio di paul at zgtec dot com
    per favore NIENTE PVT TECNICI da sconosciuti

  6. #6
    Sigh.... lo so.
    ma non posso istallare nulla sul server remoto :-(

    tu hai un idea di come si costruisca questa stringa, seppur laboriosa, lunga e complicata?.

    se funziona sui post fatti da form in quanto a prestazioni dovrebbe avere lo stesso risultato anche in uno script, e cmq sarebbero post di immagini di massimo 500 k.

    Ciuz

  7. #7
    cosi funziona... ma su due server che sono miei e dove posso abilitare Curl...

    cosi ci vuole due secondi!!!

    CAXXOOOOOOOOOOOOOOOOOOOOO


    $file = "image.jpg";
    $submit_url = "http://xxx.xxx.xxx.xxx/file_upload.php";
    $formvars = array("cc"=>"us \n");
    $formvars[upfile] = "@$file";
    $ch = curl_init($submit_url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $formvars);
    echo $pnp_result_page = curl_exec($ch);
    curl_close ($ch);

    Provero a parlare con l'admin....
    mi sa che faccio prima.

    fra le altre cose è uno di quei Cojoni che lavorano al ced di grande aziende. che sono entrati per amicizia con i titolari e non ci capiscono nienteeeeeeeeee, dovro farmi dare l'accesso e farlo da me.

    Byez

  8. #8
    Devi suddividere le variabili da inviare in segmenti delimitati da

    --Separatore[a capo]
    Content-Disposition: form-data; name="file1"; filename="path_fisico_assoluto"
    [a capo]
    [a capo]
    contenuto file base64 encodato
    [a capo]
    --Separatore[a capo]


    Ma ci sono altri header da aggiungere che ora non ricordo, nel computer di casa dovrei avere un esempio funzionanante che avevo creato tempo fa.
    Ma ricordo che era piuttosto lento rispetto a curl


    Questa classe dovrebbe semplificarti le cose
    http://pear.php.net/manual/en/packag...tp-request.php
    per favore NIENTE PVT TECNICI da sconosciuti

  9. #9
    Non ho capito tecnicamente cosa devi fare...
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  10. #10
    Bella roba quella...
    gli do subito un okkiata...

    purtroppo le limitazioni che ho sono che non ho accesso al server e le uniche porte apere all'esterno sono la 80 la 443 e la 3306.
    queste sono grosse limitazioni, avrei risolto una settimana fa...

    Cmq grazie, se poi ti capita fra le mani quel listato che hai nel pc di casa postalo qua...

    Tnx.

    vo a lavorare su qella classe...

    Ciao Ciao

    www.oliocapalbio.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.