asp.net 使用ckfinder 不弹窗直接上传图片、文件。

来源:互联网 发布:苏州网络培训 编辑:程序博客网 时间:2024/06/04 22:46


步骤一:复制QuickUploadCommandHandler.cs,比如复制出重命名为LwjUploadCommandHandler.cs

修改类名,以及构造。

将GetJavaScriptCode修改成下面代码:

protected override string GetJavaScriptCode( int errorNumber, string fileName, string fileUrl )
{
System.Web.HttpRequest _Request = System.Web.HttpContext.Current.Request;
string _CKEditorName = _Request.QueryString["CKEditor"];
string _errorMsg = "";

if ( _CKEditorName == null )
{
switch ( errorNumber )
{
case Errors.None:
case Errors.UploadedFileRenamed:
case Errors.UploadedInvalidNameRenamed:
return "window.parent.OnUploadCompleted(" + errorNumber + ",'" + fileUrl.Replace( "'", "\\'" ) + "','" + fileName.Replace( "'", "\\'" ) + "') ;";
default:
return "window.parent.OnUploadCompleted(" + errorNumber + ") ;";
}
}
else
{

if ( errorNumber > 0 )
{
_errorMsg = Lang.getErrorMessage( errorNumber ).Replace( "%1", fileName );
if ( errorNumber != Errors.UploadedFileRenamed )
fileUrl = "";
}
return "window.parent.document.getElementById(\"" + _CKEditorName + "\").value='" + fileUrl.Replace("'", "\\'") + "' ;";
}
}


步骤二:将Connector.cs中的

case "QuickUpload":
commandHandler = new CommandHandlers.QuickUploadCommandHandler();
break;

下面增加

case "LwjUpload":
commandHandler = new CommandHandlers.LwjUploadCommandHandler();
break;

步骤三:

新建一个upload.aspx

内容如下:

<div>
<form dir="ltr" lang="zh-cn" encType="multipart/form-data" method="post" action="/ckfinder/core/connector/aspx/connector.aspx?command=LwjUpload&type=Files&CKEditor=<%=Request.QueryString["id"]%>&CKEditorFuncNum=0&langCode=zh-cn">
<input size="22" type="file" name="upload" data-cke-expando="266" value="" />
<input name="提交" type="submit" id="Button1" value="提交" />
</form>
</div>
然后,在要加载上传功能的页面,中放置iframe

如:

<iframe src="upload.aspx?id=<%=this.txt引图.ClientID %>" frameBorder="0" style="width: 100%; height: 98%;"></iframe>
其中:

txt引图,是一个文本框控件,是上传图片后,所得到的所上传的文件的返回路径值。


原创粉丝点击