[OK]を、マイクロの$しばしばまたは他の誰かが本当にこのことについて何かをする必要があり、その間に、ここでデバッグの時間の結果である:
このソリューションは、TinyMCEの中に既に存在(ダイレクトアップロード機能を使用していますが、無効にデフォルトでは)、jqueryハックではイメージをテキストエリアに挿入します。
寸法を変更するには、画像を注入した後に行う必要があります。最近のバージョンのTinymceでは、この方法でも使える素敵な画像編集ツールを追加しました。
今コード:
これはコントローラ内に配置する必要がアクションである:
public string Upload(HttpPostedFileBase file)
{
string path;
string saveloc = "~/Images/";
string relativeloc = "/Images/";
string filename = file.FileName;
if (file != null && file.ContentLength > 0 && file.IsImage())
{
try
{
path = Path.Combine(HttpContext.Server.MapPath(saveloc), Path.GetFileName(filename));
file.SaveAs(path);
}
catch (Exception e)
{
return "<script>alert('Failed: " + e + "');</script>";
}
}
else
{
return "<script>alert('Failed: Unkown Error. This form only accepts valid images.');</script>";
}
return "<script>top.$('.mce-btn.mce-open').parent().find('.mce-textbox').val('" + relativeloc + filename + "').closest('.mce-window').find('.mce-primary').click();</script>";
}
(ルーティングマインド)、これはTinyMCEのための完全なコードであり、それが生成しますテキストボックスといくつかの隠しフィールドがあります。また、いくつかのプラグインを有効にして、tinymceのインスタンスを作成します。
<iframe id="form_target" name="form_target" style="display:none"></iframe>
<form id="my_form" action="/admin" target="form_target" method="post" enctype="multipart/form-data" style="width:0;height:0;overflow:hidden">
<input name="file" type="file" onchange="$('#my_form').submit();this.value='';">
</form>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
theme: "modern",
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor colorpicker textpattern imagetools"
],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
toolbar2: "print preview media | forecolor backcolor emoticons | ltr rtl",
image_advtab: true,
templates: [
{title: 'Test template 1', content: 'Test 1'},
{title: 'Test template 2', content: 'Test 2'}
],
file_browser_callback: function(field_name, url, type, win) {
if(type=='image') $('#my_form input').click();
}
});
</script>
<textarea id="my_editor" class="mceEditor">This will be an editor.</textarea>
あなたは、画像をアップロードするために、プロジェクトのルートに「イメージ」という名前のフォルダを作成する必要があります。また、Tinymce jsファイルとjqueryも必要です。
設定に応じてフォームの動作を変更してください。
また、htmlヘルパーを使用することもできます。私はそれらを好きではない。あなたが好きなら、手作りのフォームの代わりにそれらを使用してください。
アイデアはhereですが、Pythonで行われたので、ASP.NET MVC5とTinyMCEの最新バージョンで動作するように書き直しました。
私は今後数日間この問題に取り組み、必要に応じてこの回答を編集します。
paste_data_images: true,
images_upload_url: '/YourController/UploadImage',
images_upload_base_path: '/some/basepath'
CSHARPコードで:
はい、私の最後のプロジェクトはそれでした、今夜コードを投稿することができます。誰もそれに答えなかったら、私の頭の上を思い出しません。それは達成された。 –
私はちょうどそれをやったとうまく動作します!私の他の投稿を参照してください(回答) – VSG24