在VB.NET后台代码中有没有办法象用这样的语句把上传的图片加在innerHTML中parent.HtmlEditor.document.body.innerHTML+='\n'+img+''非常棘手。拜托各位了。或者用其他方法也可以!

解决方案 »

  1.   

    上传图片应该是弹出一个窗口来,在这个窗口中选择图片的路径来,然后上传,在上传成功后就会得到这个图片在服务器上的地址,比如是:picurl="www.163.com/load/abc.jpg",然后就有个触发js事件的,js事件中这样写:
    <script  language="JavaScript">
    function Addpic1(picurl)
    {
    if (picurl!= null){
    var string;
    string="<img src"+picurl+">"
    content=window.opener.frames.message.document.body.innerHTML;
    content=content+string;
    window.opener.frames.message.document.body.innerHTML=content;
    self.close();
    }
    else window.opener.frames.message.focus();
    }
    </script>仿照这个就能够解决
      

  2.   

    在弹出的页面中用的也是iframe,是这样写的:
    <script language="javascript">
    document.write ('<iframe src="textbox.asp" id="message" width="660" height="380"></iframe>')
    frames.message.document.designMode = "On";
    </script>不明白的话给我发短消息,我给你完整的例子
      

  3.   

    我直接用的VB.NET中的类上传的。主要就是这个图片路径变量与脚本之间传不了值
      

  4.   

    为什么非要用vb.net呢?
    JAVASCRIPT就可以做到<%@ Page Language="vb" AutoEventWireup="false" Codebehind="UpLoadImg.aspx.vb" Inherits="Music.UpLoadImg"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>图片上传</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <LINK href="Css/Style.css" type="text/css" rel="stylesheet">
    <script language="javascript">
    function CopyText()
    {
    Url=document.all.TextBox1.value;
    clipboardData.setData('text',Url);
    alert('地址已复制, 粘贴请按Ctrl+V')
    }<!--function b_Close_onclick(){
    //关闭父窗体打开的层
    window.parent.hideEditbox();
    }//-->
    </script>
    <script language="JavaScript" type="text/JavaScript">
    <!--function MM_preloadImages() { //v3.0
      var d=document; if(dimages){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    //-->    function chkForm()
       {
          

    if(document.all.File1.value!="")
    {
    var FileSize=2048000
    var PicWidth=120
    var PicHeight=120
    if(!ValPic1(FileSize,PicWidth,PicHeight)){return false;}
    }
    var fileext=document.all.File1.value.substring(document.all.File1.value.length-4,document.all.File1.value.length)
    fileext=fileext.toLowerCase()
    if (!(fileext=='.jpg' || fileext=='.gif'))
    {alert("对不起,不正确的图片文件,必须为*.jpg或*.gif文件 !");
    document.all.File1.focus();
    return false;
    }

    setTimeout("setFormDisable()",10);

    return true;
       }
       function ValPic1(s1,s2,s3)
    {
    TestObj=document;
    vWidth=s2
    vHeight=s3
    vFileSize=s1

    if(TestObj.all.imgBig.fileSize==-1)
    {
    alert('不是有效的图片类型!')
    return false;
    }
    if(TestObj.all.imgBig.fileSize>=vFileSize)
    {
    alert("文件太大,请将文件限制在200K以内!");
    return false;
    }
    if(TestObj.all.imgBig.width>vWidth||TestObj.all.imgBig.height>vHeight)
    {
    alert("图片尺寸太大,图片必须限制在" + vWidth + "X" + vHeight + "大小以内!");
    return false;
    }
    return true;
    }
       function Zoomimg()
       {
          TestObj=document;
          divImg.height=TestObj.all.imgBig.height;
          document.getElementById("spInfo").innerText="图片尺寸:" + TestObj.all.imgBig.width + "*" + TestObj.all.imgBig.height;
          if(TestObj.all.imgBig.width>=570)
            TestObj.all.imgBig.width=570;
         
       
       }
       function PreviewP(filePath)
    {
    document.all.divImg.innerHTML="<img border=0 name=imgBig id=imgBig align=middle src='" + filePath + "' onload='Zoomimg()' >";
    }



    function getStatus()
    {
    var imgbig=document.getElementById("imgBig");
    if(imgbig!=null)
    {
    if(!imgbig.complete) return;
    document.getElementById("divLoading").style.display="none";
    document.getElementById("divImg").style.display="";
    if(imgbig.width>500){imgbig.height=imgbig.height*500/imgbig.width;imgbig.width=500}
    window.clearInterval(ti);
    }
    }

    var ti=window.setInterval("getStatus()",10);
    </script>
    </HEAD>
    <body>
    <form id="Form1" method="post" runat="server">
    <center>
    <table style="BORDER-COLLAPSE: collapse" borderColor="#efefef" cellSpacing="0" cellPadding="0"
    width="350" border="1">
    <tr>
    <td>
    <TABLE style="TABLE-LAYOUT: fixed" width="550" align="center">
    <tr id="trPhoto">
    <TD align="center" colspan="2">
    <div id="divLoading">正在加载...</div>
    <div id="divImg" style="DISPLAY:none">
    <img src="Images/NoPic.gif" border="0" id="imgBig" name="imgBig">
    <br>
    </div>
    <span id="spInfo"></span>
    </TD>
    </tr>
    </TABLE>
    </td>
    </tr>
    <tr align="center">
    <td><INPUT language="javascript" id="b_Close" onclick="return b_Close_onclick()" type="button"
    value="关闭" name="b_Close">&nbsp;<asp:button id="Button1" runat="server" Text="上传"></asp:button>
    <INPUT id="File1" style="WIDTH: 260px; HEIGHT: 22px" type="file" size="24" runat="server"
    onpropertychange="javascript:PreviewP(this.value)"></td>
    </tr>
    <tr align="center">
    <td>&nbsp;
    <asp:textbox id="TextBox1" runat="server" Width="254px" Visible="False" onfocus="CopyText()"></asp:textbox><asp:label id="Label2" runat="server" ForeColor="Red"></asp:label></td>
    </tr>
    </table>
    </center>
    </form>
    </body>
    </HTML>
    适当的修改一下
      

  5.   

    我最终通过下面来实现。供大家参考。比较简便(个人认为)<%
     if file.FileSize>0 then         ''如果 FileSize > 0 说明有文件数据
      file.SaveToFile Server.mappath(FileName)
      dim img 
      img="<img src="+FileName+">" 
    response.write "<script>window.opener.frames.HtmlEditor.document.body.innerHTML+='"&img&"'</script>"
    %>
    <%
     end if
     set file=nothing
    next
    set upload=nothing
    end if
    %>
    感谢楼上的朋友!