BlackBerry联系人照片
我目前正在致力于一个名为的BlackBerry Contacts Sync,并且我坚持在这一点上关于如何同步联系人的图像。图像如何存储在数据库(MySQL)中以及如何检索它们?BlackBerry联系人照片
如果要将图像存储在数据库中而不是引用图像的路径,则用于保存图像的列需要为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实例通信的服务器端技术。
先生请给我这个解决方案,我怎么可以从PHP下载图像,因为我在php中使用标签来显示图像,但是在JDE中无法访问它以从中获取图像。当我使用readfile函数时,图像被读取,但其他联系人信息在JDE中不被访问。我在PHPMyAdmin下使用MySql。 – Farhan 2010-05-31 15:13:16
您可以在base64对它们进行编码后将图像存储在blob字段中。
在PHP的情况下,您可以upload multipart file over HTTP Post,然后 save this image to MySQL, and retrieve it later。您也可以use .NET or Tomcat web services with JAX-RPC。
非常感谢您的帮助。 – Farhan 2010-05-21 07:46:31
不客气! – 2010-05-21 08:32:02
嗨!你确定这是关于MySQL数据库吗?数据库在哪里部署? – 2010-05-20 05:30:44
是的,我在phpmyadmin下使用sql数据库。 – Farhan 2010-05-20 09:24:47