2013-10-20 4 views
0

mysql 데이터베이스에 이미지를 저장하고 싶습니다. 이미지는 안드로이드 애플 리케이션을 통해 보냅니다. 문제는 정말 어떤 방법을 msql 데이터베이스에 이미지를 저장하는 데 사용할지 모르겠다.mysql 데이터베이스에 이미지 저장

1. Access image from file 
2.Store image in filesystem and store the url in the database 
3.Store the image in the database 

이러한 이미지를 저장 한 후.이 이미지를 PHP 파일로 가져오고 싶습니다.

가장 좋은 방법과 그 방법을 알고 싶습니다.

+0

내 대답이 정말로 도움이 되었다면 허용 된 답변에 대해 항상 업보를 할 수 있습니다. – johntheripp3r

답변

0

모바일 플랫폼 데이터베이스 호출은 비용이 많이 듭니다. 데이터베이스에서 가져 오는 데 더 많은 사이클이 소요되고 응용 프로그램의 성능이 저하 될 수 있음을 의미합니다. 분명히 당신은 그것을 원하지 않습니다. 그래도하고 싶다면 BLOB이 답입니다.

가 데이터베이스에 절대 경로 필드를 추가하고 로컬 저장소에서 이미지를 가져 효율적인 방법입니다.
이 방법이 가장 좋습니다.

+0

정말 내 프로필을 본 후에 사람들이 여기 ** 와서 ** 내 대답을 기쁘게하는 것을 기쁘게 생각합니다. 나는이 많은 관심을 기대하지 않았다. – johntheripp3r

1

예, 이미지를 데이터베이스에 저장할 수는 있지만 바람직하지는 않습니다.

데이터베이스에 이미지를 저장하지 마십시오. 이미지를 디렉토리에 저장하고 데이터베이스의 이미지에 대한 참조를 저장합니다. 데이터베이스의 이미지 경로 또는 데이터베이스의 이미지 이름을 저장하는 것과 같습니다.

이미지의 크기가 1MB를 초과 할 수 있습니다.> 작은 이미지 일지라도 여전히 나쁜 습관입니다. 당신은 당신이 완전히 피할 수있는 데이터베이스 트랜잭션에 추가 히트를 가하고 있습니다. 큰 웹 사이트는 데이터베이스에 이미지를 저장하지 않습니다. 예를 들면 : Facebook은 그것을하지 않습니다. 좋은 생각이 아닙니다.

피하십시오. 디렉토리를 사용하십시오.

0

먼저 이미지 파일 이름을 얻고 아래와 같이 테이블에 저장하는 폴더에 이미지를 저장 한 후 업로드 과정에서 다음 이미지

CREATE TABLE IF NOT EXISTS `photos` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `img` varchar(255) NOT NULL, 
    `sound` varchar(255) NOT NULL, 
    `about` text NOT NULL, 
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `user_id` varchar(255) NOT NULL, 
    `likes` int(255) NOT NULL, 
    `down` int(255) NOT NULL, 
    `seen` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; 

의 참조를 저장하기 위해 사진의 테이블을 만듭니다.

$save_image = mysql_query("INSERT INTO photos VALUES('','$originalFile','','$about','$data','$uid','0','0','0')") or die(mysql_error()); 

다음은 단순히 이미지

$p = mysql_query("select img from photos"); 
$p_f = mysql_fetch_assoc($p); 

$img = $p_f['img']; 

을 표시하고 이미지 단순히

<img src="myFolder/<?php echo $img?>"> 

하고 완료를 표시합니다.

관련 문제