如何从富文本编辑器保存图像

时间:2014-01-04 18:45:12

标签: asp.net asp.net-mvc-4 richtextbox

我有一个包含富文本编辑器的表单。

虽然只有richtext编辑器中的内容,但在将其保存在数据库中时没有任何问题。 但是当我在其中附加图像时,它总是用这个错误戳我 -

Invalid URI: The Uri string is too long.

是的,URI绝对是如此之长,但即使我已将数据类型保存到nvarchar(MAX),为什么这个表单也不会保存它。

参见图片 -

enter image description here

和此图片的URI -

enter image description here

虽然模型类型具有此富文本编辑器的nvarchar(MAX)数据类型。

我正在执行简单的保存功能并通过

呈现富文本编辑器的值

@Html.Raw()帮助者。

对于这个编辑器的渲染,我在客户端这样做 -

 @Html.Raw(Model.businessDetails)

模型 -

public string businessDetails{get;set;}

为什么SQL SERVER不保存这个长uri?我的表单提交有什么问题?

1 个答案:

答案 0 :(得分:2)

首先,

你应该把这作为一个POST请求而不是GET!

之后你有两个选择

<强> 1)

设置一个属性,使其在字符串中显示为allow HTML,并将图像存储为h64中的base64,您不必担心将其存储在任何位置。

[AllowHtml]
public string businessDetails{ get; set; }

<强> 2)

  1. 抓住图片的src

  2. 从中删除data:image/png;base64,

  3. 使用base64转换器解码结果,结果是二进制结果

  4. byte[] imageArr ;
    
    //set your imageArr here---
    
    BitmapImage bi = new BitmapImage();
    bi.BeginInit();
    bi.CreateOptions = BitmapCreateOptions.None;
    bi.CacheOption = BitmapCacheOption.Default;
    bi.StreamSource = new MemoryStream(imageArr);
    bi.EndInit();
    
    Image img = new Image();  //Image control of wpf
    
    img.Source = bi;
    
  5. 将图片保存到目的地。 img.Save("path", ImageFormat.Jpeg )

  6. 用实际网址
  7. 替换该图片的src