1. 程式人生 > >asp.net 使用ckfinder 不彈窗直接上傳圖片、檔案。

asp.net 使用ckfinder 不彈窗直接上傳圖片、檔案。

步驟一:複製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引圖,是一個文字框控制元件,是上傳圖片後,所得到的所上傳的檔案的返回路徑值。