Tiedosto formista meiliin

Viestiketju Vapaata keskustelua -osiossa. Ketjun avasi salora 29.08.2006.

  1. salora

    salora Regular member

    Liittynyt:
    17.06.2004
    Viestejä:
    263
    Kiitokset:
    0
    Pisteet:
    26
    Eli miten saan php:ssa määriteltyä filen lähettämisen. Html-sivulla yhtenä vaihtoehtona tekstikenttien lisäksi olisi jonkun esim. kuvatiedoston selaus omista tiedostoista ja sen lähettäminen php-koodissa määriteltyyn sähköpostisoitteeseen. Tai no siis kaiken muun jo hallitsen, paitsi tuo määrittely php-osiossa juuri tuolle tiedostolle..
     
    Viimeksi muokattu: 29.08.2006
  2.  
  3. Ysf

    Ysf Active member

    Liittynyt:
    02.10.2005
    Viestejä:
    1,954
    Kiitokset:
    1
    Pisteet:
    68
    joku tämmönen.. tuossa liitetiedoston lähettämisessä voi määritellä tuon tiedostotyypin, eli Content-Type: image/jpeg olisi jiipekille, octet/stream on sitten kai ajettaville tiedostoille.

    sitten sinulla pitää olla palvelimella jossa tuota koodia ajat, niin sendmail kohdallaan sillä mail() funktio käyttää sendmailia lähetyksessä. Jos sinulla ei ole sendmailia tai joudut käyttämään toista SMTP-palvelinta, niin sitten joudut kikkailemaan lisää..

    mutta tässäpä olisi jonkinlainen suuntaa-antava koodi tuosta tiedoston lähettämisestä, jota en ole itse kuitenkaan testannut :-D

    Koodi:
    // asetetetaan oikean rivinlopetus
    if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
         $eol="\r\n";
    } elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) {
         $eol="\r";
    } else {
         $eol="\n";
    }
    
    if (!empty($_FILES["LomakkeenKentta"]["name"])) {
        $handle=fopen($_FILES["LomakkeenKentta"]["name"]);
        $tiedosto_sisalto=fread($handle, filesize($_FILES["LomakkeenKentta"]["name"]));
        $tiedosto_sisalto=chunk_split(base64_encode($tiedosto_koodattu));     //vedetään base64 enkoodaus    
        $tiedoston_tyyppi=filetype($_FILES["LomakkeenKentta"]["name"]);     //todetaan tiedoston tyyppi
        fclose($handle); 
    
        //asetetaan headeri
        $headers .="From: Keneltä <maili.osoite>".$eol;
        $headers .= "X-Mailer: PHP v".phpversion().$eol; 
        
        // Boundry for marking the split & Multitype Headers
        $mime_boundary=md5(time());
        $headers .= 'MIME-Version: 1.0'.$eol;
        $headers .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"".$eol;
         
    
        $msg = ""; 
        //liitetiedosto
        $msg .= "--".$mime_boundary.$eol; 
        $msg .="Content-Type: application/octet-stream; name=\"".$_FILES["LomakkeenKentta"]["name"].\"".$eol;
        $msg .= "Content-Transfer-Encoding: base64".$eol; 
        $msg .= "Content-Disposition: attachment; filename=\"".$_FILES["LomakkeenKentta"]["name"]."\"".$eol.$eol;
        $msg .= $tiedosto_sisalto.$eol.$eol; 
    
        //itse viesti.
        $msg .= "--".$mime_boundary.$eol; 
        $msg .= "Content-Type: text/html; charset=iso-8859-1".$eol;
        $msg .= "Content-Transfer-Encoding: 8bit".$eol;
        $msg .= $body.$eol.$eol; 
        $msg .= "--".$mime_boundary."--".$eol.$eol; 
        //lähetetään viesti
        mail(kenelle.posti@menee, "otsikko, $msg, $headers); 
    }
    
     
    Viimeksi muokattu: 29.08.2006

Jaa tämä sivu