MySQL에 이미지를 저장할 수 있습니까?
가능한 중복 :
MySQL의
이미지 MySQL에 이미지 저장
사용자가 등록의 일부로 이미지를 업로드하는 웹 사이트를 개발하려고합니다. 각 이미지마다 PHP로 만든 엄지 손가락이 있어야합니다 (매우 어렵지는 않습니다). 데이터베이스에 엄지 손가락을 저장하고 싶습니다 (매우 작기 때문에) .MySQL을 사용합니다. (엄지 손가락을 드라이브에 실제 파일로 저장하고 싶지
않습니다 .) MySQL에서 이미지 데이터를 저장하고 검색 할 수 있습니까? 어떻게해야합니까? 이미지 데이터를 지원하지 않는 경우 사용 가능한 무료 데이터베이스가 있습니까? 링크를 제공 할 수 있다면 기쁠 것입니다.
감사.
예, 데이터베이스에 이미지를 저장할 수 있지만 제 생각에는 권장하지 않으며 일반적인 관행이 아닙니다.
일반적인 관행은 이미지를 파일 시스템의 디렉토리에 저장하고 이미지에 대한 참조를 데이터베이스에 저장하는 것입니다. 예를 들어 이미지 경로, 이미지 이름 등. 또는 대안으로 이미지를 CDN (Content Delivery Network) 또는 여러 물리적 영역에 걸쳐 수많은 호스트에 저장하고 데이터베이스의 해당 리소스에 액세스하기위한 참조를 저장할 수도 있습니다. .
이미지는 1MB보다 상당히 커질 수 있습니다. 따라서 이미지를 데이터베이스에 저장하면 데이터베이스와 웹 서버가 서로 다른 호스트에있는 경우 데이터베이스와 네트워크에 불필요한로드가 발생할 수 있습니다.
저는 직원 수가 4 만 명 이상인 신생 기업, 중소 기업 및 대기업에서 근무했습니다. 13 년 동안의 전문적인 경험에서 나는 데이터베이스에 이미지를 저장하는 사람을 본 적이 없습니다. 나는 이것이 성명을 뒷받침하기 위해 드문 관행이라고 말합니다.
Blob으로 저장해야하며 mysql의 LONGBLOB 데이터 유형이 작동합니다.
전의:
CREATE TABLE 'test'.'pic' (
'idpic' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
'caption' VARCHAR(45) NOT NULL,
'img' LONGBLOB NOT NULL,
PRIMARY KEY ('idpic')
)
다른 사람들이 말했듯이, 나쁜 습관이지만 할 수 있습니다. 그러나이 코드가 제대로 확장되는지 확실하지 않습니다.
MySQL에서 이미지를 Blob으로 저장할 수 있습니다. 그러나 이것은 몇 가지 이유로 문제가 있습니다.
- 이미지를 조작하기가 더 어려울 수 있습니다. 대량 작업을 수행하려면 먼저 데이터베이스에서 이미지를 검색해야합니다.
- 전체 데이터베이스가 RAM에 저장되는 매우 드문 경우를 제외하고 MySQL 데이터베이스는 궁극적으로 디스크에 저장됩니다. 즉, DB 이미지가 Blob으로 변환되어 데이터베이스에 삽입 된 다음 디스크에 저장됩니다. 디스크에 간단히 저장하여 많은 오버 헤드를 절약 할 수 있습니다.
대신 image_path 필드를 추가하도록 테이블을 업데이트하십시오. 예를 들면 다음과 같습니다.
ALTER TABLE `your_table`
ADD COLUMN `image_path` varchar(1024)
그런 다음 이미지를 디스크에 저장하고 이미지 경로로 테이블을 업데이트하십시오. 이미지를 사용해야 할 경우 지정된 경로를 사용하여 디스크에서 이미지를 검색하십시오.
이 방법의 유리한 부작용은 이미지가 반드시 디스크에 저장 될 필요는 없다는 것입니다. 이미지 경로 대신 URL을 쉽게 저장하고 인터넷이 연결된 위치에서 이미지를 검색 할 수 있습니다.
데이터베이스에 이미지를 BLOB으로 저장해야합니다.
테이블에 PHOTO라는 열을 작성하고이를 중간 크기로 설정하려고합니다.
그런 다음 양식에서 가져 오기를 원할 것입니다.
$data = file_get_contents($_FILES['photo']['tmp_name']);
그런 다음 열을 $ data의 값으로 설정하십시오.
물론 이것은 나쁜 습관이며 아마도 사용자 계정에 해당하는 이름으로 파일을 시스템에 저장하고 싶을 것입니다.
참고 URL : https://stackoverflow.com/questions/6472233/can-i-store-images-in-mysql
'programing tip' 카테고리의 다른 글
Android에서 뷰의 전역 스타일 설정 (0) | 2020.07.19 |
---|---|
힘내- "손상된"대화식 rebase를 고치는 방법? (0) | 2020.07.19 |
문자열 스트림을 사용하여 쉼표로 구분 된 문자열을 분리하는 방법 (0) | 2020.07.18 |
PowerShell에서 경로 다시로드 (0) | 2020.07.18 |
dyld : 라이브러리가로드되지 않음 : PHP 관련 항목이있는 /usr/local/lib/libpng16.16.dylib (0) | 2020.07.18 |