문제

데이터베이스에 파일을 저장하는 방법을 찾으려고 노력하고 있습니다. 데이터베이스가 아닌 파일 시스템에 파일을 저장하는 것이 좋습니다.하지만 작업중 인 작업은 데이터베이스를 사용하여 이러한 이미지 (파일)를 저장하는 것을 선호합니다.

몇 가지 제약도 있습니다. 저는 관리자가 아니며 모든 명령을 실행하기 위해 저장된 절차를 수행해야합니다. 이것은 지금까지 큰 어려움이 아니었지만, 나는 내 인생에서 데이터베이스에 파일 (이미지)을 저장하는 방법을 설정할 수는 없습니다.

벌크 명령을 사용하려고 할 때 "벌크로드 명령문을 사용할 수있는 권한이 없습니다"라는 오류가 발생합니다. 대량 유틸리티는 파일을 데이터베이스에 업로드하는 쉬운 방법처럼 보였지만 권한이 없으면 작업을 생각해야합니다.

파일 업로드 입력 유형과 함께 HTML 양식을 사용하여 PHP로 처리하기로 결정했습니다. PHP는 저장된 절차를 호출하고 파일의 내용을 통과합니다. 문제는 이제 매개 변수의 최대 길이가 128 자일 수 있다는 것입니다.

이제 나는 완전히 붙어 있습니다. 벌크 명령을 사용할 권한이 없으며 SP로 전달할 수있는 매개 변수의 최대 길이는 128자인 것으로 보입니다.

이진 문자와 ASCII 캐릭터가 함께 잘 섞이지 않기 때문에 문제가 발생할 것으로 예상되었지만 막 다른 골목에 있습니다 ...

감사

도움이 되었습니까?

해결책

다음은 내가 찾은 예입니다 David Hayden의 블로그에서.

AC# 예이지만 단계는 PHP에서 유사해야합니다.

  1. 업로드 된 파일을 바이트 어레이로 변환하십시오
  2. 서버에서 동적 TSQL을 실행하십시오

다른 팁

일반적으로 SQL로 이진 데이터를 전달하지 않습니다. 파일을 서버에 업로드 한 다음 서버에서 이미지를 데이터베이스에로드합니다.

파일에서 이미지를 데이터베이스에로드합니다.

UPDATE images
SET image = LOAD_FILE('images/myimage.jpg')
WHERE image_id = 1234

이미지를 파일로 다시 가져옵니다.

SELECT image
INTO DUMPFILE 'images/myimage.jpg'
FROM images
WHERE image_id = 1234
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top