WCF服务不保存来自Ionic App的图像

时间:2016-10-14 12:30:47

标签: c# angularjs wcf ionic-framework file-transfer

我正在处理一个应用程序并上传Ionic我的WCF服务图像,问题是当图像来自我的WCF代码时未正确保存。将其另存为图像无效。

[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "upload2/{fileName}")]
string Upload2(string fileName, Stream fileStream);

public string Upload2(string fileName, Stream fileStream)
    {

        try
        {
            FileStream fileToupload = new FileStream(WebConfigurationManager.AppSettings["FilePath"] + fileName, FileMode.Create);

            byte[] bytearray = new byte[10000];
            int bytesRead, totalBytesRead = 0;
            do
            {
                bytesRead = fileStream.Read(bytearray, 0, bytearray.Length);
                totalBytesRead += bytesRead;
            } while (bytesRead > 0);

            fileToupload.Write(bytearray, 0, bytearray.Length);
            fileToupload.Close();
            fileToupload.Dispose();
            return "succ";
        }
        catch (Exception ex)
        {
            return ex.Message + " - " + ex.InnerException;
        }
    }

代码控制器AngularJs,

$scope.subirFoto = function() {
    var options = new FileUploadOptions();

    options.fileKey = "post";

    options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType = "image/jpeg";
    options.chunkedMode = false;


    var ft = new FileTransfer();

    ft.upload(imageURI, encodeURI("http://192.68.1.182:8085/IServiceTopStore.svc/upload2/"+options.fileName), win, fail, options);
}

1 个答案:

答案 0 :(得分:0)

如果有人需要

,请解决此问题
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "UploadImage/{fileName}")]
string UploadImage(string fileName);

public string UploadImage(string fileName)
    {
        try
        {
            HttpPostedFile file = HttpContext.Current.Request.Files["post"];
            if (file == null)
                return null;
            string targetFilePath = WebConfigurationManager.AppSettings["FilePath"] + fileName;
            file.SaveAs(targetFilePath);
            return "succ   " + file.FileName.ToString(); ;
        }
        catch (Exception ex)
        {
            return ex.Message + " - " + ex.InnerException;
        }
    }

离子:

$scope.subirFoto = function() {
    var options = new FileUploadOptions();

    options.fileKey = "post";

    options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType = "image/jpeg";
    options.chunkedMode = false;


    var ft = new FileTransfer();

    ft.upload(imageURI, encodeURI("http://192.1.1.1:8085/IServiceTopStore.svc/upload2/"+options.fileName), win, fail, options);
}