Q&A

  • mysql에 이미지 저장
안녕하세요...........

그림판에서 편집한 이미지를 mysql서버의 특정폴더에 저장하고 싶습니다.
물론 db에 저장하는 거구요.
저장된 그림을 다시 불러와 편집(ole객체나 기타 이미지툴 이용)할려구 합니다.

protocol은 ftp로 할려구하는데..........
어떻게 해야 할까요.......?? 감이 안오네요!


고수님들 조언점 부탁합니다.
2  COMMENTS
  • Profile
    skysoft 2003.11.12 18:56
    참고하세요. 맞는 답변인 지 모르겠군요.
    MySQL의 BLOB 타입으로 그림을 저장했습니다.
    문서에 blob가 64K, mediumblob가 16M 까지 되는군요.
    MyODBC 로 DB에 접속했고요.

    1.MySQL에 테이블 만듦.
    create table test (name char(10), sajin mediumblob);

    2.쿼리를 이용했음.
    --------------------------------------------------------------그림저장
    procedure TForm1.Button1Click(Sender: TObject);
    var
      BlobField: TBlobField;
      BS: TBlobStream;
      Bitmap: TBitmap;
    begin
      Bitmap := TBitmap.Create;
      Bitmap.LoadFromFile('c:\temp\brush.bmp');

      Query1.RequestLive := true; //Query.Insert 가 가능하게 함
      Query1.Active := true;

      Query1.Insert;
      Query1.FieldByName('name').Value := 'brush.bmp';

      //그림을 저장
      BlobField := TBlobField(Query1.FieldByName('sajin'));
      BS := TBlobStream(Query1.CreateBlobStream(BlobField, bmWrite));
      Bitmap.SaveToStream(BS);

      Query1.Post;

      Query1.Active := false;
      Query1.RequestLive := false;
      Bitmap.Free;
    end;


    --------------------------------------------------------------그림읽음
    procedure TForm1.Button2Click(Sender: TObject);
    var
      BlobField: TBlobField;
      BS: TBlobStream;
      Bitmap: TBitmap;
    begin
      Bitmap := TBitmap.Create;

      Query1.Active := true;

      Label1.Caption := Query1.FieldByName('name').AsString;

      //그림을 읽음
      BlobField := TBlobField(Query1.FieldByName('sajin'));
      BS := TBlobStream(Query1.CreateBlobStream(BlobField, bmRead));
      Bitmap.LoadFromStream(BS);

      Image1.Picture.Assign(Bitmap);

      Query1.Active := false;
      Bitmap.Free;
    end;


    --------------------------------------------------------------속성설정
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Query1.SQL.Text := 'select * from test ';
    end;


  • Profile
    마른장작 2003.11.13 07:18
    관심 감사합니다.
    질문을 보니 잘못 얘기한 점이 있습니다.
    db에는 파일이름만 저장되고 실제 그림은 server의 특정폴더에 저장하려구 합니다.  
    이런 경우는 어떻게 해야합니까?