我正在尝试使用ckeditor(4.7版本)的上传图片插件而没有任何运气。图像上传正常,但上传完成后编辑器闪烁,显然重新加载,没有图像。
服务器端代码如下:
try
{
HttpPostedFileBase uploads = HttpContext.Request.Files["upload"];
string file = uploads.FileName;
string ruta = Server.MapPath("~/App_Data/" + file);
uploads.SaveAs(ruta);
var exito = new
{
uploaded = 1,
fileName = file,
url = HttpUtility.UrlEncode("http://localhost:7742/App_Data/" + file),
};
return Json(exito, JsonRequestBehavior.AllowGet);
}
编辑器配置如下:
<script type="text/javascript">
CKEDITOR.config.language = 'es';
CKEDITOR.config.extraPlugins = 'uploadimage';
CKEDITOR.config.imageUploadUrl = '/Home/UploadImages';
CKEDITOR.replace("editorNosotros");
</script>
我知道我没有提供很多细节,但是我正在关注ckeditor的文档(here)而且我没有找到任何关于这种行为的信息(我用Google搜索的大部分内容都是指之前版本的CKEditor的)。
我也尝试将网址更改为/App_Data/" + file
,但似乎没有任何效果。我不确定编辑器是否正在重新加载或实际发生了什么。
好的,感谢HMR的评论,事情变得越来越有趣。我添加了以下代码,因为其他任何东西都返回404错误,因为图像的路径不正确:
Uri baseUri = new Uri("http://localhost:7742");
Uri myUri = new Uri(baseUri, "App_Data/" + file);
var exito = new
{
uploaded = 1,
fileName = file,
url = myUri.PathAndQuery
};
我还必须在网络配置中添加配置:
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="App_Data" />
</hiddenSegments>
</requestFiltering>
</security>
现在对图像的所有请求都返回Ok,但是我看不到控制器操作的json响应,仍然编辑器重新加载而没有图像。
任何评论都将不胜感激。