Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 15904|Odpověď: 0

[ASP.NET] asp.net použít ckeditor_3.6.2+ckfinderckfinder_aspnet_2.1.1 k nastavení funkce nahrávání obrázků

[Kopírovat odkaz]
Zveřejněno 18.04.2015 19:11:55 | | |

Nejnovější verze CKEditoru a CKFinderu lze stáhnout z oficiálních stránek (http://cksource.com).

Umístěte výše uvedené dva zdroje do kořenového adresáře webu: /CKEditor (zde ve verzi 3.6.2 musíte vložit složku _Samples\ckeditor do komprimované složky) a /CKFinder (bez rozlišení velkých písmen, můžete složku vložit přímo sem). )

Všimněte si, že zde někdy dojde k chybě v generaci. Například existují duplicitní tagy typu AssemblyTitle, hlavně proto, že web má více než jeden AssemblyInfo.cs smazat stažený soubor. Nebo smažte složku _source. Pokud máte zde jakékoli dotazy, můžete mě kontaktovat: my QQ: 515072775

Použití CKEditoru na stránce:

<textarea cols="80" id="prcontent" jméno="content" řádky="50"> Dobrý den, vaše použití bylo úspěšné! </textarea>

<scrip remove ttype="text/javascrip remove t" >

CKEDITOR.replace('content', { height:200, width: 520 });

</scrip去掉t>. . .

CKEditor nemá funkci nahrávání, takže je potřeba ho nahrát pomocí CKFinder

Krok 1: Web musí odkazovat na dll CKFinder (adresář: /CKFinder/bin/Release/CKFinder.dll)

Krok 2: Nakonfigurujte config.js CKEditoru (adresář: /CKEditor/config.js) ve funkci CKEDITOR.editorConfig a zbytečné funkce lze odstranit


CKEDITOR.editorConfig = function(config) {
config.filebrowserBrowseUrl = 'ckfinder/ckfinder.html'; Nepiš "~/ckfinder/..." nebo "/ckfinder/..."
config.filebrowserImageBrowseUrl = 'ckfinder/ckfinder.html? typ=Obrázky';
config.filebrowserFlashBrowseUrl = 'ckfinder/ckfinder.html? Type=Flash';
config.filebrowserUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files';
config.filebrowserImageUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images';
config.filebrowserFlashUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash';
config.filebrowserWindowWidth = '800';  Nastavení velikosti vyskakovacího okna Browse Server
config.filebrowserWindowHeight = '500';
}
CKFinder.setupCKEditor(null, '.. /ckfinder/'); Všimněte si, že dráha ckfinderu odpovídá skutečnému umístění

Konfigurace CKFinderu:

Otevřete uživatelskou kontrolu config.ascx pod "ckfinder\" a změňte jeho cestu k BaseUrl:

BaseUrl = "~/ckfinder/userfiles/"; nebo BaseUrl = "ckfinder/userfiles/";





Ještě jedna poznámka: je užitečné testovat v IIS. Jinak, pokud nahrávání neuspěje, budete si myslet, že je něco špatně s konfigurací.

CKEditor má po dokončení konfigurace funkci nahrávání, ale co když je obrázek původní název a chce ho změnit na náhodný název souboru? Pak se podívejte na třetí krok.

Krok 3: Upravte zdrojový kód CKFinderu. CKFinder má vlastní zdrojový kód, adresář: /CKFinde/_source

Vytvořte nový aktuální projekt ve VS do CKFinde/_source/CKFinder.Net.sln, soubor řešení stažený zde se nemusí otevřít ve VS2008, můžete zvolit přidání nového projektu nebo použití novější verze VS k jeho otevření.

1) Otevřete soubor /Settings/ConfigFile.cs

Najděte 27 řádků a přidejte atribut: public bool RandomReName; Přejmenovat náhodně

Najděte 67 řádků a právě teď přiřaďte hodnotu vlastnosti: RandomReName = true; Výchozí hodnota je pravdivá

Uložit uzavřený soubor

2) Otevřete soubor /Connector/Config.cs

Najděte 62 řádků, přidejte atribut:

veřejný bool RandomReName

{

get { returnSettings.ConfigFile.Current.RandomReName; }

}

Uložit uzavřený soubor

3) Otevřít soubor /Connector/CommandHandlers/FileUploadCommandHandler.cs

Najděte řádek 64 a přidejte kód rozsudku:

if ( Config.Current.RandomReName) // Použijte náhodné jméno

sFileName =DateTime.Now.ToString("yyyMMddHHmmssfff") + "." +sExtension;


Uložit uzavřený soubor
4) Znovu vygenerovat projekt, přepsat /ckfinder/_source/bin/Debug/CKFinder.dll /ckfinder/bin/Release/CKFinder.dll nebo odstranit dříve přidané odkazy na projekt webu a znovu odstranit dll z CKFinder.Net projektu
Poslední krok: Otevřít /ckfinder/config.ascx
Najděte 40 řádků a přidejte atribut: (Ve skutečnosti můžete přidat tento atribut nebo ne, protože dříve byla nastavena výchozí hodnota, ale při použití původního názvu musí být nastavena na nepravdivé)

//上传完毕后使用随机文件名

RandomReName = pravda;


Uložit zavřeno

Dobře, teď když je konfigurace úspěšná, může CKEditor mít funkci nahrávání. Nastavení jiných funkcí budete studovat dál, až budete mít čas~

Ještě jedna připomínka: složky CKEditor a CKFinder obsahují spoustu zbytečných věcí, jako jsou názvy s podtržítky, .net projekty nepotřebují php, asp.

Pokud dojde k chybě při nahrávání souboru: Soubor nelze z bezpečnostních důvodů zobrazit do prohlížeče. Kontaktujte prosím svého správce systému a zkontrolujte profil CKFinder.

Musíte upravit soubor config.ascx

public override bool CheckAuthentication()
{
retura nepravdivá;
}
Upraveno na:

public override bool CheckAuthentication()
{

Validace formulářů
returnRequest.IsAuthenticated;

}



3. Aplikujte CKEditor control na stránku [dvě metody, a a b]

[A: Citace INSTALL.html v komprimovaném balíčku]

Pokud chcete CKEditor integrovat se svou ASP.NET stránkou, postupujte podle níže uvedených kroků.

1. Přejděte na oficiální stránku ke stažení CKEditoru a stáhněte si nejnovější verze CKEditor 3.x i CKEditor pro ASP.NET Control.
2. Rozbalte oba instalační balíčky na požadované místo Remove n.
3. Přidat odkaz na CKEditor pro ASP.NET Control na vašem webu.
     Ve Visual Studiu použijte příkaz Add Reference a prohlédněte si soubor bin\Release\CKEditor.NET.dll z rozbaleného CKEditoru pro ASP.NET instalační balení. DLL soubor můžete také ručně zkopírovat do složky bin vaší aplikace.
4. Zkopírujte rozbalené editorové soubory z instalačního balíčku CKEditor 3.x a vložte je do adresáře aplikací na vašem webu.
5. Zaregistrujte CKEditora pro ASP.NET Control na vaší stránce:
<%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %>
6. Vložte instanci CKEditoru do těla stránky:
<CKEditor:CKEditorControl ID="CKEditor1" runat="server"></CKEditor:CKEditorControl>
【b】

1. <head>Přidejte odpovídající js odkaz na stránku:

    <scrip odstranit t type="text/javascrip odstranit t" language="javascrip odstranit t" src="ckfinder/ckfinder.js"></scrip去掉t>
    <scrip odstranit t type="text/javascrip odstranit t" language="javascrip odstranit t" src="ckeditor/ckeditor.js"></scrip去掉t>
2. Poté <body>přidejte následující kód na místo, kde je potřeba ovládací prvky umístit, a existují následující způsoby použití:

(1) Přidat specifikovaný atribut třídy do řídicího systému
    <textarea id="textarea1" jméno="editor1" class="ckeditor">ahoj!</textarea>
Ovládání serveru:
    <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" CssClass="ckeditor"></asp:TextBox>

(2) Injektujte js kód – zde je js kód nejlépe zapsán za řídicí kontrolou nebo <head>do ní
    <textarea id="textarea1" jméno="editor1">ahoj!</textarea>
    <scrip odstranit t type="text/javascrip odstranit t" >
        CKEDITOR.replace('editor1', { height:400, width:800 });
    </scrip去掉t>. . .
Ovládání serveru:
    <asp:TextBox ID="mckeditor" runat="server" TextMode="MultiLine"></asp:TextBox>
    <scrip odstranit t type="text/javascrip odstranit t" >
        CKEDITOR.replace('<%=mckeditor. ClientID %>');
    </scrip去掉t>. . .
=============================================================================================================
Druhá referencie:
asp.net konfigurační metodu CKEDITOR 3.0.1 a ckfinder_aspnet_1.4.1.1
Podle pokynů http://ckeditor.com.cn/docs/ je CKEditor nastaven na webové stránce a při zobrazení v prohlížeči mám pocit, že rozhraní CKEditoru je skutečně velmi krásné, ale když jsem chtěl zkusit funkci nahrávání obrázku, neviděl jsem tlačítko pro nahrání obrázku.

Při dalším hledání online došlo k závěru, že "CKEditor sám nemá funkci nahrávání a musí být integrován s CKFinderem, aby bylo možné dosáhnout funkce nahrávání".
Pak stáhni CKFinder 1.4.1.1 pro Asp.net, rozbal ho a vložil složku ckfinder do kořenového adresáře projektu – protože mnoho zdrojů na internetu říká, že je nejlepší dát CKEditor a CKFinder do stejné adresáře úrovně. A tímto způsobem budeme mít v našem projektu další dvě složky bez důvodu. Sám mám posedlost čistotou kódů, myslím,
Nechte složku jako projev úcty k autorovi, to bude stačit. Mít dvě by mi bylo velmi nepříjemné.


Než integrujeme CKFinder do CKEditoru, musíme ho také trochu nakonfigurovat. Chytří přátelé by si měli snadno myslet, že protože je to plugin pro nahrávání souborů, většina věcí, které je třeba nastavit, je cesta k nahrávání souborů.

Výchozí cesta k nahrávání CKFinder je složka userfiles ve vlastním adresáři, ale CKFinder jsem dal do složky CKEditor, pokud uložím obrázek do userfiles, systém musí obejít třívrstvou složku, aby našel soubor nebo obrázek, takže plánuji nahrát obrázek do složky upFile v kořenovém adresáři projektu.
Pro implementaci této funkce je potřeba upravit soubor config.ascx pod CKFinder tak, aby změnil BaseUrl = "/ckfinder/userfiles/" na BaseUrl = "~/upFile/". Pak vyřízněte CKFinder.dll soubory ze složky CKFinder/bin do složky bin systémového projektu. Nebo CKFinder.dll do projektu zavést přidáním odkazů.
Dále můžeme použít CKEditor pro nahrávání souborů:

Vložte složku CKFinder do složky CKEditor a na stránce importujte js soubory obou těchto souborů:

<scrip remove tsrc="http://www.cnblogs.com/ckeditor/ckeditor.js" type="text/javascrip remove t"></scrip去掉t>

<scrip remove t src="http://www.cnblogs.com/ckeditor/ckfinder/ckfinder.js" type="text/javascrip remove t"></scrip去掉t>
Existují dva způsoby, jak odkazovat editor na ovládací prvky:

Jedním z nich je použití textové oblasti pro řízení klienta:

<textarea rows="20" cols="40" name="txtContent" id="txtContent"></textarea>

<scrip odstranit t type="text/javascrip odstranit t" >

var editor = CKEDITOR.replace('txtContent');

CKFinder.SetupCKEditor(editor, 'http://www.cnblogs.com/ckeditor/ckfinder/');

</scrip去掉t>. . .

Druhým je použití serverového ovládacího textového okna:

<asp:TextBox id="txtContent" TextMode="MultiLine" Text='<%# Bind("info") %>' runat="server"></asp:TextBox>

<scrip odstranit t type="text/javascrip odstranit t" >

var editor = CKEDITOR.replace('txtContent');

CKFinder.SetupCKEditor(editor, 'http://www.cnblogs.com/ckeditor/ckfinder/');

</scrip去掉t>Osobně si myslím, že protože je to asp.net program, tak použít ovládání na straně serveru. Ačkoliv to běží o něco pomaleji než ovládání klienta, vývoj je o něco rychlejší. A jako programátoři vždy rádi zkoušíme všechny možnosti, než si vybereme tu, která se nám líbí.

Ve skutečnosti můžete také přiřadit hodnoty ovladači bez použití Text='<%# Bind("info") %>', a použít ho přímo v backcodeu

this.txtContent.Text="Počáteční hodnota"
    Je to také možné. Můžete také použít následující kód přímo k získání hodnoty:

CKFinder a CKEditor kód. Když stránku spustím přímo s editorem, kompilátor zobrazí následující chybu:

string content=this.txtContent.Text
    Poznámka: Atribut TextMode="MultiLine" je nezbytný, jinak bude hodnota nulová.

Nezjednodušil jsem program před ladením

Název typu nebo jmenného prostoru "ControlDesigner" v jmenném prostoru "System.Web.UI.Design" neexistuje (chybí tam assemblerový odkaz?)

Chyba je v řádku 19 v ckeditor\ckfinder\_source\FileBrowserDesigner.cs, takže soubor jednoduše zjednodušte:

Prvním krokem je zjednodušit ckeditor: smazat složky _samples a _source a v adresáři lang lze uchovávat pouze tři jazykové soubory: en.js, zh.js a zh-cn.js;

Druhým krokem je zjednodušit ckfinder: smazat složky _samples a _source a v adresáři lang si ponechat pouze soubory en.js, zh.js a zh-cn.js jazyka.

Všimněte si druhého řádku js kódu zde: CKFinder.SetupCKEditor(editor, 'http://www.cnblogs.com/ckeditor/ckfinder/'); , kde "http://www.cnblogs.com/ckeditor/ckfinder/" je relativní cesta ckfinderu k aktuální stránce,
Prosím, nekopírujte kód přímo, jinak se při nahrávání obrázků může objevit následující chyba:

Popis: HTTP 404. Zdroj, který hledáte (nebo některá z jeho závislostí), mohl být odstraněn, nebo se změnil jeho název, nebo je dočasně nedostupný. Zkontrolujte prosím následující URL a ujistěte se, že je správně napsaná.

Požadovaná URL: /admin/ckeditor/ckfinder/core/connector/aspx/connector.aspx

Takže pokud nechcete dávat ckfinder do složky ckeditor, jako jsem to udělal já, je to v pořádku, pokud správně vyplníte změny cesty zde.

Myslel jsem, že to bude považováno za veškerou práci, ale když jsem obrázek nahrál, objevil se následující prompt:

Z bezpečnostních důvodů nelze soubor prohlížet. Kontaktujte prosím svého správce systému a zkontrolujte profil CKFinder.

Není možné, jak se říká, že dobré věci se těžko jí. Mohu se zeptat jen nejlepšího učitele – Baidu. Zkopíroval jsem výše uvedené informace do vyhledávacího pole Baidu a po vstupu do auta jsem našel příspěvek o integraci PHP v ckeditoru. Tady je, jak na to:

Upravte soubor config.ascx v CKFinder tak, abyste změnili návratovou hodnotu veřejné funkce CheckAuthentication() z return false na return true.

Znovu jsem to otestoval, obrázek se úspěšně nahrál!

Partitura

Počet účastníků1MB+2 přispět+2 Zhroucení důvod
whoami + 2 + 2 Velmi silné!

Zobrazit všechna hodnocení





Předchozí:asp.net databáze vazeb rozbalovacích seznamů
Další:Jak mohu použít kód, který znemožní ověřování autentizace v Asp.Net?
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com