You will need to use the Thought Project Library and download its DLL from here
Download Thought.vCards.dll
And then use the following code.
Note: I have done the part of reading vCard, saving part you need to do on your own.
HTML
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="10" valign = "top">
<asp:Image ID="imgPhoto" runat="server" />
</td>
</tr>
<tr>
<td style="width: 100px">
Name:
</td>
<td>
<asp:Label ID="lblName" runat="server" />
</td>
</tr>
<tr>
<td style="width: 100px">
Company Name:
</td>
<td>
<asp:Label ID="lblOrganization" runat="server" />
</td>
</tr>
<tr>
<td>
Mobile Number:
</td>
<td>
<asp:Label ID="lblMobileNumber" runat="server" />
</td>
</tr>
<tr>
<td>
Home Number:
</td>
<td>
<asp:Label ID="lblHomeNumber" runat="server" />
</td>
</tr>
<tr>
<td>
Work Number:
</td>
<td>
<asp:Label ID="lblWorkNumber" runat="server" />
</td>
</tr>
<tr>
<td>
Email Address:
</td>
<td>
<asp:Label ID="lblEmailAddress" runat="server" />
</td>
</tr>
<tr>
<td>
Website:
</td>
<td>
<asp:Label ID="lblWebsite" runat="server" />
</td>
</tr>
</table>
Namespaces
using System.IO;
using Thought.vCards;
using System.Drawing;
using System.Drawing.Imaging;
Code
protected void Page_Load(object sender, EventArgs e)
{
vCard card = new vCard(Server.MapPath("~/vCards/Mudassar Khan.vcf"));
lblName.Text = card.FormattedName;
lblOrganization.Text = card.Organization;
if (card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular) != null)
{
lblMobileNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber;
}
if (card.Phones.GetFirstChoice(vCardPhoneTypes.Home) != null)
{
lblHomeNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Home).FullNumber;
}
if (card.Phones.GetFirstChoice(vCardPhoneTypes.Work) != null)
{
lblWorkNumber.Text = card.Phones.GetFirstChoice(vCardPhoneTypes.Work).FullNumber;
}
if (card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet) != null)
{
lblEmailAddress.Text = card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet).Address;
}
if (card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal) != null)
{
lblWebsite.Text = card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal).Url;
}
if (card.Photos.Count > 0)
{
Bitmap photo = card.Photos[0].GetBitmap();
MemoryStream stream = new MemoryStream();
photo.Save(stream, ImageFormat.Bmp);
imgPhoto.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(stream.ToArray());
}
}
Screenshot
