BlackBerry联系人照片

问题描述:

我目前正在致力于一个名为的BlackBerry Contacts Sync,并且我坚持在这一点上关于如何同步联系人的图像。图像如何存储在数据库(MySQL)中以及如何检索它们?BlackBerry联系人照片

+0

嗨!你确定这是关于MySQL数据库吗?数据库在哪里部署? – 2010-05-20 05:30:44

+0

是的,我在phpmyadmin下使用sql数据库。 – Farhan 2010-05-20 09:24:47

如果要将图像存储在数据库中而不是引用图像的路径,则用于保存图像的列需要为BLOB类型。

CREATE TABLE upload (
    id INT NOT NULL AUTO_INCREMENT, 
    name VARCHAR(30) NOT NULL, 
    content LONGBLOB NOT NULL, 
    PRIMARY KEY(id) 
); 

从你的黑莓程序(警告,未经测试):

//First param is a Bitmap, second is quality 
JPEGEncodedImage encodedImage = JPEGEncodedImage.encode(image, 100); 
byte imageBytes[]=encodedImage.getData(); 

//The HTTP connection stuff 
HttpConnection conn = (HttpConnection) Connector.open(SERVER_URL, Connector.READ_WRITE); 
conn.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_TYPE, HttpProtocolConstants.CONTENT_TYPE_MULTIPART_FORM_DATA); 
conn.setRequestMethod(HttpConnection.POST); 
conn.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_LENGTH, String.valueOf(imageBytes.length)); 
//Change this part to what your server side code expects 
String contDisp="Content-Disposition:form-data; uploadedimage=YOUR_IMAGE_NAME;filename=\"Image.jpg\""; 
String contEnc = "Content-Transfer-Encoding: binary"; 
String type="Content-Type:image/jpeg"; 

OutputStream out= conn.openOutputStream(); 
out.write(imageBytes); 
out.flush(); 
out.close(); 

所以基本上你使用HttpConnection设置的标头,POST请求,以多形式的数据作为内容类型。还有其他可能需要的标题,以确切地知道您需要什么(而不是BlackBerry特定的),请检查HTTP/1.1 protocol specification

如何将图像实际存储到数据库中取决于您的服务器端实现。这可以是PHP,ASP,JSP或任何允许您与MySQL实例通信的服务器端技术。

+0

先生请给我这个解决方案,我怎么可以从PHP下载图像,因为我在php中使用标签来显示图像,但是在JDE中无法访问它以从中获取图像。当我使用readfile函数时,图像被读取,但其他联系人信息在JDE中不被访问。我在PHPMyAdmin下使用MySql。 – Farhan 2010-05-31 15:13:16

您可以在base64对它们进行编码后将图像存储在blob字段中。

+0

非常感谢您的帮助。 – Farhan 2010-05-21 07:46:31

+0

不客气! – 2010-05-21 08:32:02