9 berichten aan het bekijken - 1 tot 9 (van in totaal 9)
  • Q:
    Bijdrager
    jeneverstoker

    OPGELOST: vcard bestandje beschikbaar maken op website

    Ik heb een nieuwe versie van onze website op het net gezet. In de profiel-pagina’s wil ik een vcard (.vcf bestandje) toevoegen dat bezoekers van de site makkelijk kunnen downloaden naar mail of outlook oid.
    Bij het locaal testen van de site werkt dat goed. De vcard wordt gelijk in Mail opgepakt ,met de vraag okf ik die wil importeren.
    Nu die on-line staat werkt het niet. Als ik de een bestandsnaam gebruik a la: vcard_hh.vcf dan wordt dat als tekst op het scherm weergegeven. Maak ik daar van naam%20achternaam.vcf dan krijg ik de foutmelding ‘file not found’.
    Er zijn sites waar het wel werkt en waar ook simpel met een link naar de vcard wordt verwezen. Dat doe ik ook, maar bij mij werkt dat niet. Wie weet hoe het wel moet?

    Mijn profielpagina vind je op: http://www.beeldenkleur.nl/profiel_hans.html

    Bijdrager
    JaNiintendo

    Zet hem om in een .pdf?

    Bijdrager
    DutChinese

    Het lijkt er gewoon op dat de link naar het vcf bestandje niet klopt. Probeer deze eens op te slaan als “naam-achternaam.vcf” in plaats van met een spatie ertussen? Uiteraard niet vergeten de linkjes in de html aan te passen..

    Wellicht overbodig, maar je weet dat je tekstlink (Hans Hockx.vcf) ergens anders naar verwijst dan wanneer je de link in de afbeelding (./download/Hans%20Hockx.vcf) volgt?

    Inactief
    Anoniem

    Geen spaties in de naam gebruiken ?

    Bijdrager
    Jakko Westerbeke
    JaNiintendo op 24 januari 2011

    Zet hem om in een .pdf?

    Ja, dat is nuttig, dan kunnen adressenboekprogramma’s het bestand gelijk openen en importeren … :slant:

    Bijdrager
    McLoe

    Je hebt een apart (los) php-scriptje nodig:

    <br />
    <?php</p>
    <p>$filename = 'vcard_hh.vcf';//$_GET['file'];</p>
    <p>// required for IE, otherwise Content-disposition is ignored<br />
    if(ini_get('zlib.output_compression'))<br />
      ini_set('zlib.output_compression', 'Off');</p>
    <p>// addition by Jorg Weske<br />
    $file_extension = strtolower(substr(strrchr($filename,"."),1));</p>
    <p>if( $filename == "" )<br />
    {<br />
    //  echo "<html><title>eLouai's Download Script</title><body>ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</body></html>";<br />
      exit;<br />
    } elseif ( ! file_exists( $filename ) )<br />
    {<br />
    //  echo "<html><title>eLouai's Download Script</title><body>ERROR: File not found. USE force-download.php?file=filepath</body></html>";<br />
      exit;<br />
    };<br />
    switch( $file_extension )<br />
    {<br />
      case "pdf": $ctype="application/pdf"; break;<br />
      case "exe": $ctype="application/octet-stream"; break;<br />
      case "zip": $ctype="application/zip"; break;<br />
      case "doc": $ctype="application/msword"; break;<br />
      case "xls": $ctype="application/vnd.ms-excel"; break;<br />
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;<br />
      case "gif": $ctype="image/gif"; break;<br />
      case "png": $ctype="image/png"; break;<br />
      case "jpeg":<br />
      case "jpg": $ctype="image/jpg"; break;<br />
      default: $ctype="application/force-download";<br />
    }<br />
    header("Pragma: public"); // required<br />
    header("Expires: 0");<br />
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");<br />
    header("Cache-Control: private",false); // required for certain browsers<br />
    header("Content-Type: $ctype");<br />
    // change, added quotes to allow spaces in filenames, by Rajkumar Singh<br />
    header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );<br />
    header("Content-Transfer-Encoding: binary");<br />
    header("Content-Length: ".filesize($filename));<br />
    readfile("$filename");<br />
    exit();</p>
    <p>?><br />
     

    Sla het op als vcard.php (in zelfde directory als je html-bestand), en zet in je html zoiets:

    </p>
    <li>Download <a href="vcard.php" title="vCard (.vcf) voor Microsoft Outlook of Apple Adresboek">visitekaartje</a></li>
    <p>
    Bijdrager
    MichMich

    Pfff, dat is me nogal een lap code voor iets wat veeeeeeel simpeler kan.

    Maak in dezelfde map als waarin je vcard staat een .htaccess file aan, met daarin de volgende code:

    AddType text/x-vcard .vcf

    That’s all…

    Bijdrager
    jeneverstoker

    @McLoe en @MichMich

    Bedankt voor jullie reacties. McLoe zette me op het goede spoor maar ik snapte het PHP-script niet zo goed. (ik ben geen held in PHP…) Op het web gezocht naar soortgelijke scripts en die ook gevonden.
    Eén van de websites met zo’n script bescheef ook de mogelijkheid die MichMich aangaf. Dat is inderdaad de simpelste oplossing (als je provider het toelaat om met .htaccess te stoeien). Ik heb uiteindelijk de vcards in een apart mapje gezet en in dat mapje ook de .htaccess met toevoeging van het MIME-tyope .vcf .
    Dat werkt nu goed op een naburige windows-computer. Daar wordt de vCard keurig opgepakt door Outlook.
    Mijn eigen iMac wil er nog niet aan en blijft hardnekkig de vCard als tekstfile weergeven in de browser. Wellicht zit er nog ergens iets in een cache of zo???

    Bijdrager
    jeneverstoker

    OPGELOST
    Ter afronding: de oplossing via het .htaccess bestandje werkt inmiddels prima. De ‘hickup’ die ik nog tegen kwam was dat bij het synchroniseren van de website (van lokale bron naar de server) het bestand ook weer verwijderd werd. Daardoor kwam de oude fout weer tevoorschijn. Het werkte toen uiteraard ook niet meer op de windowscomputers, maar dat zag ik pas een dag later (toen ik weer in de buurt van zo’n apparaat kwam).
    Door een aanpassing van de synchronisatie is het laatste probleem nu ook opgelost en werkt de download van vcards zoals het hoort. Nogmaals dank voor het meedenken!

9 berichten aan het bekijken - 1 tot 9 (van in totaal 9)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.