2010-07-25 13 views
1

웹 응용 프로그램과 Windows 응용 프로그램이있는 Visual Studio 2008 (C# 및 ASP) 프로그램을 작성하고 싶습니다.웹 서비스를 통해 이미지를 보내주십시오.

웹 응용 프로그램 (업로드)에서 클라이언트 이미지를 가져 와서 DB (mysql)에 저장 한 다음 웹 서비스 (새 웹 서비스가 아닌 웹 사이트)를 통해이 이미지를 Windows 응용 프로그램에 보내려고합니다. 더 공간 - 소요 - 그건

  1. 내가 두 번째 난 그냥 DB의 각 이미지의 이름을 저장해야합니다, 처음에는 DB에 BLOB 필드가 있어야 MySQL의 이미지를 저장하는 2 가지 방법을 가지고 :하지만 난이 문제가 (그래서 한 폴더에 이미지가 있음) -이 방법으로 나는 클라이언트에서 이미지를 얻는 방법을 모르며 그 폴더에 이미지를 저장합니다. 어느 것? 아니면 다른 무엇입니까?

  2. 웹 서비스 (Byte [] 또는?)를 통해 이미지를 어떻게 전송할 수 있습니까?

답변

5

WCF를 사용하여 이미지를 전송하는 옵션 중 하나는 이미지를 바이트 배열로 변환하여 클라이언트에 전달하는 것입니다. 그런 다음 바이트 []에서 클라이언트 측 이미지로 변환하십시오.

1

질문 1 :

DB debase의 이미지 또는 링크는 오래되었지만 아직 해결되지 않았습니다. white paper이 나와서 SQL Server 2008의 경우 권장되는 150,000 DB 저장 공간 아래의 이미지/바이너리가 좋은 절충안임을 권장합니다. 대부분의 이미지가 끝나면 링크가 있으면 DB에 저장하십시오.

질문 2 : 당신은 단순히 byte[] 걸리는 Response.BinaryWrite 방법을 사용할 수 있도록

이 웹 서비스는,하는 HTTP 컨텍스트 개체를해야합니다. 올바른 헤더 (MIME 형식 등)를 써야합니다.

디스크의 파일의 경우 가장 간단한 방법은 파일 경로 인수를 사용하는 Response.WriteFile 메서드를 사용하는 것입니다.

두 경우 모두 클라이언트에서이를 가로 채 다시 이미지로 변환해야합니다.

관련 문제