当前位置: 代码迷 >> ASP.NET >> xheditor上图片有关问题
  详细解决方案

xheditor上图片有关问题

热度:4360   发布时间:2013-02-25 00:00:00.0
xheditor上图片问题
大家帮帮忙,为什么我的xheditor上传的时候,一直在文件上传中(文件上传中,请稍候……
)。怎么回事呢
HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title>无标题页</title>    <script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>    <script src="xheditor/xheditor-1.1.10-zh-cn.min.js" type="text/javascript"></script>    <script type="text/javascript">  $(function() {     $('#txtContent').xheditor({tools:'full',width:'680',height:'450',hoverExecDelay:-1,layerShadow:0,internalScript:true,inlineScript:true,linkTag:true,localUrl:'rel',upBtnText:'上传',upLinkUrl:'upload.aspx?immediate=1',upImgUrl:'{editorRoot}upload.aspx?immediate=1',upFlashUrl:'upload.aspx?immediate=1',upMediaUrl:'upload.aspx?immediate=1',emots:{qq:{name:'QQ',count:55,width:25,height:25,line:11},msn:{name:'MSN',count:40,width:22,height:22,line:8},bq1:{name:'bq1',count:48,width:128,height:128,line:5}},emotMark:true});  }); </script></head><body>    <form id="form1" runat="server">    <div>        <textarea id="txtContent" name="content" class="xheditor{upImgUrl:'upload.aspx?immediate=1'}"            rows="12" cols="80">test</textarea>    </div>    </form></body></html>


------解决方案--------------------------------------------------------
在你的Default2.aspx页面下新建一个upload.aspx页面
然后拷贝如下代码:
C# code
<%@ Page Language="C#" AutoEventWireup="true" CodePage="65001" %><%@ Import namespace="System" %><%@ Import namespace="System.Collections" %><%@ Import namespace="System.Configuration" %><%@ Import namespace="System.Data" %><%@ Import namespace="System.Web" %><%@ Import namespace="System.Web.Security" %><%@ Import namespace="System.Web.UI" %><%@ Import namespace="System.Web.UI.HtmlControls" %><%@ Import namespace="System.Web.UI.WebControls" %><%@ Import namespace="System.Web.UI.WebControls.WebParts" %><script runat="server">    /* * upload demo for c# .net 2.0 *  * @requires xhEditor * @author Jediwolf<jediwolf@gmail.com> * @licence LGPL(http://www.opensource.org/licenses/lgpl-license.php) *  * @Version: 0.1.3 (build 100504) *  * 注1:本程序仅为演示用,请您务必根据自己需求进行相应修改,或者重开发 * 注2:本程序将HTML5上传与普通POST上传转换为byte类型统一处理 *  */protected void Page_Load(object sender, EventArgs e){    Response.Charset = "UTF-8";    // 初始化一大堆变量    string inputname = "filedata";//表单文件域name    string attachdir ="../upload";     // 上传文件保存路径,结尾不要带/    int dirtype = 1;                 // 1:按天存入目录 2:按月存入目录 3:按扩展名存目录  建议使用按天存    int maxattachsize = 2097152;     // 最大上传大小,默认是2M    string upext = "txt,rar,zip,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid";    // 上传扩展名    int msgtype = 2;                 //返回上传参数的格式:1,只返回url,2,返回参数数组    string immediate = Request.QueryString["immediate"];//立即上传模式,仅为演示用    byte[] file;                     // 统一转换为byte数组处理    string localname = "";    string disposition = Request.ServerVariables["HTTP_CONTENT_DISPOSITION"];    string err = "";    string msg = "''";        if (disposition != null)    {        // HTML5上传        file = Request.BinaryRead(Request.TotalBytes);        localname = Regex.Match(disposition, "filename=\"(.+?)\"").Groups[1].Value;// 读取原始文件名    }    else     {                HttpFileCollection filecollection = Request.Files;        HttpPostedFile postedfile = filecollection.Get(inputname);        // 读取原始文件名        localname = postedfile.FileName;        // 初始化byte长度.        file = new Byte[postedfile.ContentLength];                // 转换为byte类型        System.IO.Stream stream = postedfile.InputStream;        stream.Read(file, 0, postedfile.ContentLength);        stream.Close();        filecollection = null;    }        if (file.Length == 0)err = "无数据提交";    else    {        if (file.Length > maxattachsize)err = "文件大小超过" + maxattachsize + "字节";        else        {            string attach_dir, attach_subdir, filename, extension, target;            // 取上载文件后缀名            extension = GetFileExt(localname);                        if (("," + upext + ",").IndexOf("," + extension + ",") < 0)err = "上传文件扩展名必需为:" + upext;            else            {                switch (dirtype)                {                    case 2:                        attach_subdir = "month_" + DateTime.Now.ToString("yyMM");                        break;                    case 3:                        attach_subdir = "ext_" + extension;                        break;                    default:                        attach_subdir = "day_" + DateTime.Now.ToString("yyMMdd");                        break;                }                attach_dir = attachdir + "/" + attach_subdir + "/";                // 生成随机文件名                Random random = new Random(DateTime.Now.Millisecond);                filename = DateTime.Now.ToString("yyyyMMddhhmmss") + random.Next(10000) + "." + extension;                target = attach_dir + filename;                try                {                    CreateFolder(Server.MapPath(attach_dir));                    System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(target), System.IO.FileMode.Create, System.IO.FileAccess.Write);                    fs.Write(file, 0, file.Length);                    fs.Flush();                    fs.Close();                }                catch (Exception ex)                {                    err = ex.Message.ToString();                }                // 立即模式判断                if (immediate == "1") target = "!" + target;                target=jsonString(target);                if(msgtype==1)msg = "'"+target+"'";                else msg = "{'url':'" + target + "','localname':'" + jsonString(localname) + "','id':'1'}";            }        }    }    file = null;        Response.Write("{'err':'" + jsonString(err) + "','msg':" + msg + "}");}string jsonString(string str) {    str = str.Replace("\\", "\\\\");    str = str.Replace("/", "\\/");    str = str.Replace("'", "\\'");    return str;}string GetFileExt(string FullPath) {    if (FullPath != "")return FullPath.Substring(FullPath.LastIndexOf('.') + 1).ToLower();    else return "";}void CreateFolder(string FolderPath){    if (!System.IO.Directory.Exists(FolderPath))System.IO.Directory.CreateDirectory(FolderPath);}    </script>