ASP.NET部署问题将映像保存到数据库

时间:2018-07-22 00:43:33

标签: asp.net image iis base64

当我将代码从VS2015部署到IIS时,我遇到了一个不寻常的问题。在VS中,当我运行Web代码(调试或发布)时,我选择并加载然后转换为base64的映像将转换为字节数组并保存到数据库,而不会出现任何问题。但是,当我部署到Web服务器时,代码无法正常工作,并且映像从未更新。我没有收到任何错误信息。只要我从VS运行它,一切都可以。 IIS服务器上是否需要配置某些东西?任何帮助或评论将不胜感激。

HTML代码

<form class="input-group" id="img2b64">
<input id="inputFileToLoad" name="files" type="file" 
onchange="encodeImageFileAsURL();" />
</form>
<!-- is used to display b64 code and hold the b64 for ajax call to controller -->
<textarea id="b64" class="form-control"></textarea>

JQUERY代码

 function encodeImageFileAsURL(cb) {
        return function () {
            var file = this.files[0];
            var reader = new FileReader();
            reader.onloadend = function () {
                cb(reader.result);
            }
            reader.readAsDataURL(file);
        }
    }

    $('#inputFileToLoad').change(encodeImageFileAsURL(function (base64Img) {
        $('#act_Photo').attr('src', base64Img);
        $('#b64').val(base64Img);
    }));

在控制器代码中

// model.ImageFile is the base64 string
if (!string.IsNullOrEmpty(model.ImageFile))
{
     // strip out base64 header
     int pos = model.ImageFile.LastIndexOf(',') + 1;
     string data = model.ImageFile.Substring(pos);
     // get byte array of base64 image
     byte[] bytes = Convert.FromBase64String(data);
     // convert and save as byte array to DB
     var acctImg = new WebImage(bytes).Resize(220, 200, false, true);
     // aRec.Photo is in DB record
     aRec.Photo = acctImg.GetBytes();
}

1 个答案:

答案 0 :(得分:0)

似乎一切都很好。我在IIS中重新启动了站点。似乎是一个导致所有悲伤的缓存问题。有时我只是讨厌缓存。