注册 登录
编程论坛 ASP.NET技术论坛

上传图片后如何取得文本编辑器中的图片路径.

zkh 发布于 2008-10-03 19:45, 3051 次点击
上传图片后如何取得文本编辑器中的图片路径,把路径保存到数据库单独字段中.如:编辑器中内容为:

刚刚闭幕的党的十七大是我们党在新世纪召开的全国代表大会,也是我国在进入全面建设小康社会推进社会主义现代化建设新的发展的一次重要的代表大会。<IMG id=eWebEditor_TempElement_Img src="File/2008-10-03-15-14-22.jpg" width=200 border=0>加深对其深刻内涵和精神实质的理解,在税收实际工作中全面落实“三个代表”重要思想,不断提高科学判断形势的能力,应对复杂局面的能力,依法行政的能力.

如何取得路径如:File/2008-10-03-15-14-22.jpg.单独保存.

[[it] 本帖最后由 zkh 于 2008-10-4 21:40 编辑 [/it]]
8 回复
#2
Xxibug2008-10-04 00:45
不明白说的啥意思
#3
bygg2008-10-04 12:10
在文字中找<IMG  再找src
#4
zkh2008-10-04 16:19
要的结果是这样的
添加内容aspx代码
<body>
    <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td style="width: 550px">
        <asp:TextBox ID="name" runat="server" ></asp:TextBox></td>
                </tr>
               
                <tr>
                    <td style="width: 550px; height: 355px;">
                    <asp:TextBox ID="txtContent" runat="server" style="display:none;"></asp:TextBox>
        <iframe src='eWebEditor/ewebeditor.htm?id=txtContent&style=coolblue&savefilename=editFirstImageName' frameborder='0' scrolling='no' width='100%' height='350'></iframe> <br />
                    </td>
                </tr>
                <tr>
                    <td style="width: 550px">
                    
        <asp:Button ID="Enter" runat="server" Text="提交" OnClick="Enter_Click" />     
         <input name="editFirstImageName" type="hidden" id="editFirstImageName"  value="" runat="server" />  //加上这句也不行      
                  <input id="Reset1" type="reset" value="重写" /></td>
                </tr>
                <tr>
                    <td style="width: 550px; height: 21px;">
        <asp:Label ID="message" runat="server"></asp:Label></td>
                </tr>
                <tr>
                    <td >
                     
                        <asp:TextBox ID="News_UploadImage" runat="server" Width="241px"></asp:TextBox>
                        &nbsp;&nbsp;&nbsp;&nbsp;<asp:CheckBox ID="News_isPic" runat="server"  Text=" 设为图片新闻"/></td>
                </tr>
            </table>
        </div>
    </form>
</body>

aspx.cs代码
protected void Enter_Click(object sender, EventArgs e)
    {
        string  myconn;
      
        string N_PIC = Request["editFirstImageName"];  //取不到值,如何得到图片路径              
  string Edittext = new Common().GetText(txtContent.Text);
        //string N_PIC = News_UploadImage.Text;//获取文本框中的图片
      
        myconn = ConfigurationManager.ConnectionStrings["lybConnectionString"].ConnectionString;
                OleDbConnection conn = new OleDbConnection(myconn);
        conn.Open();      
        string OleDb;
        OleDb = "insert into news ([name],[content],[imge]) values ('" + this.name.Text + "','" + Edittext + "','" + N_PIC + "')";
        OleDbCommand comm = new OleDbCommand(OleDb, conn);
        comm.ExecuteNonQuery();
        message.Text = "写入成功 ";
        conn.Close();
       btnClear_Click();
      
      
    }



保存到数据库后中是这样:数据库结构为:
ID               CONENT                             PIC
1         也是我国在进入全面建设小         File/2008-10-03-15-14-22.jpg
           康社会推进社会主义现代化  
            建设新的发展的一次重要的
           代表大会。
<IMG id=eWebEditor_TempElement_Img src="File/2008-10-03-15-14-22.jpg" width=200 border=0>
      加深对其深刻内涵和精神实质的理解

[[it] 本帖最后由 zkh 于 2008-10-4 16:41 编辑 [/it]]
#5
hebingbing2008-10-04 21:25
3楼的方法不是就可以吗?
#6
zkh2008-10-04 21:39
不知道怎么写代码!
3楼的方法不会写.在数据库里能看到<IMG,就是不知道怎么办!怎么写代码?
#7
zsf20062008-10-05 20:14
我来写一个,测试通过,只是提供参考!(未考虑取多个的情况,请楼主自行解决)
private string GetImgString(string str)
    {
        string res = "";
        string tem = "";
        int startIndex = 0;
        int endIndex = 0;
        for (int i = 0; i < str.Length; i++)
        {
            tem = str.Substring(i, 4).ToLower();
            if (tem == "<img")
            {
                startIndex = i;
                str = str.Substring(startIndex);
                endIndex = str.IndexOf('>');
                res = str.Substring(0, endIndex + 1);
                break;
            }
        }
        return res;
    }
#8
zsf20062008-10-05 20:28
好人做到底,提供取多个的情况,只是多了两行代码而已,狂晕
//取多个的情况
    private string GetImgString(string str)
    {
        string res = "";
        string tem = "";
        int startIndex = 0;
        int endIndex = 0;
        for (int i = 0; i < str.Length-4; i++)
        {
            tem = str.Substring(i, 4).ToLower();
            if (tem == "<img")
            {
                startIndex = i;
                str = str.Substring(startIndex);
                endIndex = str.IndexOf('>');
                res = str.Substring(0, endIndex + 1);
                str = str.Substring(endIndex);
                res += GetImgString(str); //递归调用
               
                break;
            }
        }
        return res;
    }
#9
zkh2008-10-07 20:03
谢谢各位的回复,可以了
谢谢各位的回复,可以了
1