base64文字列を受信し、プロジェクトに保存するために画像に変換するwcfサービスを作成しています。
これは私の方法です:
public Boolean UploadProfile(int UserId, string base64String, string FileExtension)
{
try
{
string fileExtension;
byte[] bytes = Convert.FromBase64String(base64String);
if (FileExtension == "")
fileExtension = ".png";
else
fileExtension = FileExtension;
String timeStamp = GetTimestamp(DateTime.Now);
fileExtension = timeStamp + fileExtension;
string strFileName = "~/Images/" + fileExtension;
using (UserRegistrationBal UserregistrationBal = new UserRegistrationBal())
{
using (MemoryStream stream = new MemoryStream(bytes))
{
Image image = Image.FromStream(stream);
image.Save(HttpContext.Current.Server.MapPath(strFileName));
UserregistrationBal.UploadProfile(UserId, fileExtension);
}
return true;
}
}
catch (Exception ex)
{
ErrorLogManager.LogError(ex);
return false;
}
}
public static String GetTimestamp(DateTime value)
{
return value.ToString("yyyyMMddHHmmssffff");
}
私のインターフェース:
[ServiceContract]
public interface Services
{
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, Method = "POST")]
Boolean UploadProfile(int UserId, string base64String, string FileExtension);
}
今私がこのように私の残りのクライアントからこのメソッドを呼び出しているとき:
その後、私のメソッドはRESTクライアントから呼び出していません。
メソッドにデバッガーを保持しましたが、何も起こりません
空白のbase64パラメータを渡すと、メソッドが呼び出されます。
誰かが私に何が問題なのか教えてもらえますか?
ファイルサイズに問題があると思います。maxBufferSize、maxBufferPoolSize、maxReceivedMessageSizeを次のように変更してください。
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
あなたのバインディングからそれから試してみてください、私はそれがうまくいくはずだと思います。追加してみてください
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647"/>
あなたのバインディングで。大きなファイルをRESTサービスにアップロードします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加