문제

는 가장 좋은 방법은 무엇입을 만드는 웹 서비스를 받아들이는 이미지입니다.이미지도 아주 큰 나는 원하지 않을 변경하는 기본 수신기에 대한 웹 응용 프로그램입니다.내가 쓴 한가지 바이너리 이미지는 느낌 있는 더 나은 대안입니다.

도움이 되었습니까?

해결책

어디에이 이미지를"살고 있습니까?" 그것은에 액세스할 수 있는 로컬 파일 시스템 또는 응용 프로그램입니다.그렇다면,내가 당신의 웹 서비스를 받는 URI(수 있습 URL 또는 로컬 파일)그리고 스트림으로,다음 사용하 StreamReader 의 내용을 읽습니다.

예(그러나 포장 이외에 FaultExceptions 추가 FaultContractAttributes):

using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Sockets;

[OperationContract]
public void FetchImage(Uri url)
{
    // Validate url

    if (url == null)
    {
        throw new ArgumentNullException(url);
    }

    // If the service doesn't know how to resolve relative URI paths

    /*if (!uri.IsAbsoluteUri)
    {
        throw new ArgumentException("Must be absolute.", url);
    }*/

    // Download and load the image

    Image image = new Func<Bitmap>(() =>
    {
        try
        {
            using (WebClient downloader = new WebClient())
            {
                return new Bitmap(downloader.OpenRead(url));
            }
        }
        catch (ArgumentException exception)
        {
            throw new ResourceNotImageException(url, exception);
        }
        catch (WebException exception)
        {
            throw new ImageDownloadFailedException(url, exception);
        }

        // IOException and SocketException are not wrapped by WebException :(            

        catch (IOException exception)
        {
            throw new ImageDownloadFailedException(url, exception);
        }
        catch (SocketException exception)
        {
            throw new ImageDownloadFailedException(url, exception);
        }
    })();

    // Do something with image

}

다른 팁

할 수 없는 업로드 이미지를 사용하여 서버 FTP,다음이 완료되면 서버는(그래서 WCF 서비)반 쉽게 액세스합니까?되는 것을 방지할 수 있습니다 필요 사상가로 수신기 설정 등입니다.

최소는 어떻게 나았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top