2012-06-19 12 views

답변

0

가장 쉬운 방법은 대상 사이트에 이미지로 다시 변환 한 다음를 전송하고, 전에 바이트 배열로 이미지를 변환하는 것입니다을 사용하여 이미지를 업로드합니다.

여기에 바로 그 일을하는 두 가지 방법은 다음과 같습니다

웹 서비스가이 같은 방법 뭔가있을 수 있다는 것을 의미
public byte[] ImageToByteArray(Image image) 
{ 
    var ms = new MemoryStream(); 
    image.Save(ms, ImageFormat.Png); 
    return ms.ToArray(); 
} 

public static Image ByteArrayToImage(byte[] byteArray) 
{ 
    var ms = new MemoryStream(byteArray); 
    return Image.FromStream(ms); 
} 

:

public void UploadImage(byte[] imageData) 
{ 
    var image = ByteArrayToImage(imageData); 
    //save image to disk here, or do whatever you like with it 
} 
1

은 기본적으로 당신이 WCF streaming를 사용해야합니다.

[ServiceContract] 
public interface ITransferService 
{ 
    [OperationContract] 
    void UploadFile(RemoteFileInfo request); 
} 

public void UploadFile(RemoteFileInfo request) 
{ 
    FileStream targetStream = null; 
    Stream sourceStream = request.FileByteStream; 

    string uploadFolder = @"C:\\upload\\"; 

    string filePath = Path.Combine(uploadFolder, request.FileName); 

    using (targetStream = new FileStream(filePath, FileMode.Create, 
          FileAccess.Write, FileShare.None)) 
    { 
     //read from the input stream in 65000 byte chunks 

     const int bufferLen = 65000; 
     byte[] buffer = new byte[bufferLen]; 
     int count = 0; 
     while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0) 
     { 
      // save to output stream 
      targetStream.Write(buffer, 0, count); 
     } 
     targetStream.Close(); 
     sourceStream.Close(); 
    } 
} 
관련 문제