こんにちは私はBLOBを介して画像(ユーザーのプロフィール写真)をmySQL DBに保存する必要があります。今では、画像をサーバーのファイルシステムに保存し、それらのURLのみをDBに保存するのがより良い方法であると理解していますが、私は上司ではありません:)、だから私は画像をDBに保存します!私はAndroid用のJavaスクリプト(base64でバイナリデータへの変換を使用)でうまく機能するphpコードを持っています。iPhoneで今すぐ使用する必要があります:これは画像を挿入するために使用する必要があるphpです:
<?php
$base = $_REQUEST['image'];
$filename = $_REQUEST['filename'];
//connect to the db
$user = ‘root’;
$pswd = '';
$db = ‘test’;
$conn = mysql_connect(‘localhost’, $user, $pswd);
mysql_select_db('test');
$query = "INSERT INTO `test`.`photos` (`id`, `image`) VALUES (NULL,'$base')";
mysql_query($query) or die(mysql_error());
echo "Image id is ".mysql_insert_id();
echo $base;
?>
そしてこれは画像を取得するためのものです:
<?php
$id = $_REQUEST['id'];
$username = "root";
$password = "";
$host = "localhost";
$database = "test";
mysql_connect($host, $username, $password) or die("Can not connect to database: ".mysql_error());
mysql_select_db($database) or die("Can not select the database: ".mysql_error());
//select image
$query = "SELECT * FROM `photos` WHERE id =30 LIMIT 0 , 30";
$sql = mysql_query($query) or die(mysql_error());
while($image = mysql_fetch_array($sql)){
echo $image['image'];
}
?>
私は画像を保存するためにこのようなことをしようとしています:
//converting image to data end to binary data (base64)
NSData* data = UIImagePNGRepresentation(Image);
[Base64 initialize];
NSString *strEncoded = [Base64 encode:data];
//prepare request
NSString *strURL = @"My URL Here.";
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:
[NSURL URLWithString:strURL]];
[request setDelegate:self];
[request setData:strEncoded withFileName:@"image.png" andContentType:@"image/png" forKey:@"image"];
[request startAsynchronous];
そして、mySQLで、新しいBLOBが追加されていることがわかりますが、イメージはありません([BLOB-0B])。画像データを失うアイデアはありますか?