BlackBerry Contacts Photo

时间:2010-05-19 14:10:28

标签: java blackberry

我目前正在开发一个名为 BlackBerry Contacts Sync 的应用程序,此时我对如何同步Contact的图像感到困惑。如何将图像存储在数据库(MySQL)中以及如何检索它们?

3 个答案:

答案 0 :(得分:0)

您可以在base64编码后将图像存储在blob字段中。

答案 1 :(得分:0)

答案 2 :(得分:0)

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

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

从您的BlackBerry程序(警告,未经测试):

//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实例通信的服务器端技术。