2

画像のバイト[]を受け入れることができるWebサービスを作成し、それをWebサーバーに保存しようとしています。コードは、データを送信するクライアントとデータを取得する Web サービスの 2 つの部分で構成されます。画像をアップロードしようとすると、次のエラーが発生します: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: GDI+ で一般的なエラーが発生しました。

myImage は System.Drawing イメージです。

private byte[] imageToByteArray(Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms,ImageFormat.Png);
        return ms.ToArray();
    }

using (Something.ClientServiceClient client = new Something.ClientServiceClient())
            {
                client.Open();
                client.uploadScreenShot(imageToByteArray(myImage));
            }

Web サービスは次のようになります。

public void uploadHofScreen( byte[] imgArray)
    {
        Image nImg = byteArrayToImage(imgArray);
        Bitmap bitmap = new Bitmap(nImg);
        saveJpeg("/1/test.jpg", bitmap, 85L);
    }


private void saveJpeg(string path, Bitmap img, long quality)
    {
        EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
        ImageCodecInfo jpegCodec = getEncoderInfo("image/jpeg");
        if (jpegCodec == null)
            return;
        EncoderParameters encoderParams = new EncoderParameters(1);
        encoderParams.Param[0] = qualityParam;
        img.Save("XXXX" + path, jpegCodec, encoderParams);
    }

    private ImageCodecInfo getEncoderInfo(string mimeType)
    {
        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
        for (int i = 0; i < codecs.Length; i++)
            if (codecs[i].MimeType == mimeType)
                return codecs[i];
        return null;
    } 

webconfig と appconfig の両方に次のリーダークォータがあります。

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />

問題は何かアドバイスはありますか?

4

1 に答える 1

1

(アップロード フォルダーのアクセス許可を少しいじったところ、IIS に書き込みアクセス許可がないことに気付きました。申し訳ありませんが、ここに行く前に確認する必要がありました)

明るい面としては、Web サービス経由で画像をアップロードする方法がわかるようになりました。:)

于 2012-10-21T14:13:32.523 に答える