Ok, Micro $ oft oder jemand anderes tun, etwas über das muss wirklich, hier in der Zwischenzeit ist das Ergebnis der Stunden der Fehlersuche:
Diese Lösung verwendet Funktion direkte Upload (bereits dort in TinyMCE aber deaktiviert standardmäßig) und mit etwas jquery hack injizieren wir das image in textarea.
Ändern der Abmessungen muss nach dem Einbringen des Bildes erfolgen. In den letzten Versionen von Tinymce haben sie auch einige schöne Bildbearbeitungswerkzeuge hinzugefügt, die auch mit dieser Methode funktionieren.
Jetzt ist der Code:
Dies ist die Aktion, die in einer Steuerung gelegt werden muss: (Beachten Sie den Routing)
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>";
}
Und das ist der vollständige Code für TinyMCE, wird es eine generieren Textfeld und ein paar versteckte Felder. Es wird auch eine Instanz von Tinymce mit einigen Plugins aktiviert.
<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>
Sie benötigen für das Hochladen von Bildern eines Ordner mit dem Namen „Bilder“ in Ihrem Projekt Wurzel zu machen. Sie brauchen auch Tinymce Js-Datei und Jquery.
Ändern Sie die Aktion des Formulars entsprechend Ihrer Einrichtung !!!
Sie können auch HTML-Helfer verwenden. Ich mag sie nicht. aber gehen Sie voran und verwenden Sie diese anstelle dieser handgemachten Form, wenn Sie mögen.
Die Idee ist von here, aber es wurde in Python getan, also habe ich es umgeschrieben, um mit ASP.NET MVC5 und Neueste Version von TinyMCE zu arbeiten.
Ich werde in den nächsten Tagen weiter daran arbeiten und werde diese Antwort bei Bedarf bearbeiten.
Ja, es ist eine Art und Weise, mein letztes Projekt es tat, kann ich Code heute Abend abgeben niemand es bis dahin beantwortet hat, nicht daran erinnern, von der Oberseite meines Kopfes, wie es wurde erreicht. –
Ich habe es einfach gemacht und es funktioniert gut! Siehe meinen anderen Beitrag (Antwort) – VSG24