首先去下载freetextbox,在网站中,选择添加引用,找到freetextbox文件的存放位置,单击确定,系统创建bin,将treetextbox组件存放在bin下。创建一个saveimages的文件夹,保存通过freetextbox控件上传的图片信息。

将freetextbox组件中的ftb.imagegallery.aspx文件复制到网站的根目录,该文件实现上传图片功能。修改该文件的只读属性,将AllowImage...都该为true,这些就都可以用了。

在ftb.imagegallery.aspx中,我们如果设置了JavaScriptLocation="InternalResource" 
UtilityImagesLocation="InternalResource" ,那么我们可以不用复制aspnet_client到根目录下,但是如果它们没有修改时默认的JavaScriptLocation="ExternalFile" ButtonImagesLocation="ExternalFile" 那么我们需要复制aspnet_client。

在添加组件之前,需要在页面的html源代码中添加注册组件的代码。

<%@ Register Assembly="FreeTextBox" Namespace="FreeTextBoxControls" TagPrefix="FTB" %>

将FreeTextBox添加到工具栏。(工具栏〉常规〉选择项〉浏览到DLL文件,添加),这样就可以拖fretextbox了。

拖好之后会出现<FTB:FreeTextBox runat="server" ID="FreeTextBox1"></FTB:FreeTextBox>

我们可以在里面设置它的一些属性,图片保存路径之类的,可以根据实际需要,修改toolbarlayout节点。

 <FTB:FreeTextBox runat="server" ID="FreeTextBox1" ImageGalleryPath="~/saveimages/" Language="zh-CN" PasteMode="Default" ReadOnly="false" ToolbarLayout="ParagraphMenu, FontFacesMenu, FontSizesMenu, FontColorsMenu|Bold, Italic, Underline,Strikethrough, Superscript, Subscript,RemoveFormat|JustifyLeft,JustifyRight, JustifyCenter, JustifyFull; JustifyRight, JustifyCenter, JustifyFull, BulletedList,NumberedList, Indent, Outdent; CreateLink, Unlink,InsertRule|Cut,ieSpellCheck, StyleMenu, SymbolsMenu, InsertHtmlMenu, InsertRule, InsertDate| Copy, Paste, Delete, Undo, Redo, Print, Save,InsertImageFromGallery, Preview" Width="500px" Height="260px"></FTB:FreeTextBox>

这样运行还会出现问题

freetextbox 检测到有潜在危险的 Request.Form 值

解决:在页面修改为<%@ Page Language="C#" ... ValidateRequest="false"%>

好了,这样之后就可以上传图片了。上传图片没有什么问题,我一开始的问题在于我按insert这个键,没有任何反应,ie浏览器宝js脚本错误,错误为: 无法获取未定义或 null 引用的属性“FTB_API”  window.opener.FTB_API[ftb].InsertHtml(img);运行不下去。 然后弄了半天,最后,发现,只要设置一下ie兼容性视图设置,就可以了。ie的兼容性视图设置其实就是将我们的网站放进了兼容性列表,下面是代码的实现https://blog.csdn.net/net_lover/article/details/24182287

private const string CLEARABLE_LIST_DATA = @"Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData";private const string USERFILTER = "UserFilter";private byte[] header = new byte[] { 0x41, 0x1F, 0x00, 0x00, 0x53, 0x08, 0xAD, 0xBA };private byte[] delim_a = new byte[] { 0x01, 0x00, 0x00, 0x00 };private byte[] delim_b = new byte[] { 0x0C, 0x00, 0x00, 0x00 };private byte[] checksum = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF };private byte[] filler = BitConverter.GetBytes(DateTime.Now.ToBinary());//new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 };  private byte[] regbinary = new byte[] { };  private string[] GetDomains(){string[] domains = { };using (RegistryKey regkey = Registry.CurrentUser.OpenSubKey(CLEARABLE_LIST_DATA)){//可能不存在此key.  Object filterData = regkey.GetValue(USERFILTER);if (filterData != null){byte[] filter = filterData as byte[];domains = GetDomains(filter);}}return domains;}private string[] GetDomains(byte[] filter){List<string> domains = new List<string>();int length;int offset_filter = 24;int totalSize = filter.Length;while (offset_filter < totalSize){length = BitConverter.ToUInt16(filter, offset_filter + 16);domains.Add(System.Text.Encoding.Unicode.GetString(filter, 16 + 2 + offset_filter, length * 2));offset_filter += 16 + 2 + length * 2;}return domains.ToArray();}  private void AddNewSiteToCompatibilityViewList(String domain){String[] domains = GetDomains();if (domains.Length > 0){if (domains.Contains(domain)){return;}else{domains = domains.Concat(new String[] { domain }).ToArray();}}else{domains = domains.Concat(new String[] { domain }).ToArray();}int count = domains.Length;byte[] entries = new byte[0];foreach (String d in domains){entries = this.Combine(entries, this.GetDomainEntry(d));}regbinary = header;regbinary = this.Combine(regbinary, BitConverter.GetBytes(count));regbinary = this.Combine(regbinary, checksum);regbinary = this.Combine(regbinary, delim_a);regbinary = this.Combine(regbinary, BitConverter.GetBytes(count));regbinary = this.Combine(regbinary, entries);Registry.CurrentUser.OpenSubKey(CLEARABLE_LIST_DATA, true).SetValue(USERFILTER, regbinary, RegistryValueKind.Binary);}private byte[] Combine(byte[] a, byte[] b){byte[] c = new byte[a.Length + b.Length];System.Buffer.BlockCopy(a, 0, c, 0, a.Length);System.Buffer.BlockCopy(b, 0, c, a.Length, b.Length);return c;}private byte[] GetDomainEntry(String domain){byte[] tmpbinary = new byte[0];byte[] length = BitConverter.GetBytes((UInt16)domain.Length);byte[] data = System.Text.Encoding.Unicode.GetBytes(domain);tmpbinary = Combine(tmpbinary, delim_b);tmpbinary = Combine(tmpbinary, filler);tmpbinary = Combine(tmpbinary, delim_a);tmpbinary = Combine(tmpbinary, length);tmpbinary = Combine(tmpbinary, data);return tmpbinary;}  

freetextbox基本上是可以用了,然后我们需要把数据保存到数据库,我设计了一个表create table tb_sj_news
(id int identity(1,1) primary key,
title varchar(50) not null,
contents varchar(5000) not null,
source  varchar(50),
dates  varchar(50),
author  varchar(50),
editer  varchar(50),

)

在pageload里面AddNewSiteToCompatibilityViewList("localhost");google的话,需要下载一个ie tab来使用ie的内容,然后才能做到插入图片。

兼容ie,网上说的
<meta http-equiv="X-UA-Compatible"content="IE=9; IE=8; IE=7; IE=EDGE"/>都没啥效果。

下面是插入数据库的代码

namespace editor
{public partial class freetextbox : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){if (TextBox1.Text == "" || FreeTextBox1.Text == ""){Response.Write("名称和内容不能为空");}else{String str = ConfigurationManager.ConnectionStrings["editorConnectionString"].ConnectionString.ToString();SqlConnection con = new SqlConnection(str);con.Open();String insert = "insert into tb_sj_news values(@title,@contents,@source,@dates,@author,@editor)";SqlCommand cmd = new SqlCommand(insert,con);cmd.Parameters.Add("@title",SqlDbType.VarChar,50);cmd.Parameters.Add("contents", SqlDbType.VarChar, 5000);cmd.Parameters.Add("source", SqlDbType.VarChar, 50);cmd.Parameters.Add("dates", SqlDbType.VarChar, 50);cmd.Parameters.Add("author", SqlDbType.VarChar, 50);cmd.Parameters.Add("editor", SqlDbType.VarChar, 50);cmd.Parameters["@title"].Value = TextBox1.Text.ToString();cmd.Parameters["contents"].Value = FreeTextBox1.ViewStateText.Replace("'","'");//通过replace属性,替换控件中的特殊字符cmd.Parameters["source"].Value = TextBox3.Text.ToString();cmd.Parameters["dates"].Value = DateTime.Now.ToString();cmd.Parameters["author"].Value = TextBox2.Text.ToString();cmd.Parameters["editor"].Value = TextBox4.Text.ToString();cmd.ExecuteNonQuery();con.Close();Response.Write("<script language='javascript'>alert('成功')</script>");}}}}
https://github.com/1126048156/editor.git

(十一)在线编辑模块(FreeTextBox插入图片,内容保存到数据库)相关推荐

  1. uni-app页面部分模块转化成图片并保存(适用app和h5)以及涉及轮播滚动时,区分轮播内容生成图片方法

    上一篇uni-app的截屏是截取整个页面的内容,这一篇描述页面中一部分模块转化成图片并保存的方法. 效果描述: (页面:上面是一个卡片加二维码/条形码,下面是一个轮播,可以切换不同的卡片,轮播如果把i ...

  2. 横屏模式下,编辑手机联系人添加图片,保存后联系人头像与之前默认的图片重叠或者是有阴影在头像上

    测试步骤: 横屏模式下,编辑手机联系人添加图片,保存后联系人头像显示模糊不清晰.退出该联系人界面,再次进入的时候显示清晰,后续在横屏模式下再编辑该联系人头像都是清晰的.只有第一次的时候显示不清晰. 期 ...

  3. java生成word,html文件并将内容保存至数据库 (http://blog.163.com/whs3727@126/blog/static/729915772007325112014115/)

    java生成word,html文件并将内容保存至数据库 2007-04-25 11:20:14|  分类: Java|举报|字号 订阅 http://hi.baidu.com/litertiger/b ...

  4. 在线编辑方法分享!图片在线编辑软件推荐。​

    图片在线编辑方法分享!图片编辑是指使用特定的软件或工具,对数字图像进行修改.修饰.优化和处理的过程.图片编辑可以用于改变图像的色彩.亮度.对比度.尺寸.形状等方面,也可以用于添加.删除.调整图像中的元 ...

  5. java 在线给word 文件插入图片,并设置图片大小

    一.前言: 有时我们想在一篇word文档中的指定位置添加一张服务器上的图片,并且并且设置图片大小.这个对文档的操作一定是需要第三方api的.市面上对文档处理的插件有POI以及openoffice等等, ...

  6. mysql数据库插入图片_向MySql数据库插入与读取图片文件

    1.插入图片 import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; impor ...

  7. php向数据库中插入图片,php如何向数据库添加图片

    百度开发者的云代码空间为了保证高可用,不允许用户将图片保存到代码空间中,使用CDN或者对象存储不仅收费而且使用比较复杂,于是考 虑能否将img存储在数据库中,虽然很多人说会造成性能问题,权当一试. 1 ...

  8. 问题:图片怎么保存到数据库, 以及怎么把图片从数据库中取出来使用?(已解决)...

    简单,不保存图片到数据库,而是图片的路径. 也就是说,先把图片下载到服务器的指定目录下,然后,在把相对的路径保存到数据库中. 如果下次获取图片,就访问数据库,获取图片路径,然后根据路径找到图片,最后, ...

  9. java实现excel文件上传并解析内容保存到数据库中

    基于struts框架的web项目中excel文件的上传导入到数据库中的java代码 原理:将要上传的文件已流的形式传到服务器,服务器中接收到文件数据流并生成文件到服务器指定位置,java解析服务器生成 ...

最新文章

  1. [转载]Matlab之静态文本多行输出
  2. OpenCV中VideoWriter输出视频文件为空或6KB解决方法(java)
  3. 【JXOI2018】守卫
  4. C++通过hiredis连接到redis
  5. 机器学习基础:最优化方法
  6. Anaconda中软件库更新
  7. 用oracle的java存储过程实现BLOB字段的字符串读取
  8. oracle for扫描行,请教索引范围扫描具体IO行为?
  9. Excel数据分析--客户对象分析
  10. netapp存储设备更换硬盘
  11. 【教程】手机远程连接另一台手机的termux进行拍照
  12. 利用百度地图服务发布自己制作图片的地图
  13. 怎么把pdf转换成ppt直接进行编辑
  14. 关于Mac本中的Pycharm如何设置字体大小?
  15. 软件卸载清理工具IObit Uninstaller Pro 中文版的下载、安装与注册激活教程
  16. 旅行售货商模型matlab,旅行售货员问题的几种解决方案.doc
  17. 带你去看《一支铅笔诞生的世界-世界经典动漫原画展》
  18. 使用MVC模式实现一个超简单的网上书店系统
  19. 用MFC中的SetTimer、OnTimer和KillTimer实现的简单计时器与倒计时的Demo
  20. 什么是文件共享软件?文件传输软件如何共享?

热门文章

  1. 前端调用百度短网址转换接口
  2. Z1:第一台祖思机的架构与算法
  3. 三阶魔方c语言算法最高效率算法,3阶魔方阵的算法
  4. 【数据结构】第一章绪论习题加答案
  5. horizon流程图_仪表、管道、阀门等化工工艺流程图的设计及画法,超多干货,等您来收!...
  6. celery5.2.1以下版本任务调用多耗费1秒
  7. usb和串口传输速度,串口、PS\2和USB接口的传输速率
  8. ElasticSearch前世今生lucene
  9. 三维家可以导入别人的方案吗_三维家辅助工具如何使用?三维家辅助工具安装使用教程...
  10. 计算机绘图二维三维实用教程,计算机绘图二维三维实用教程教学课件作者王建勇第二章.ppt...