We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在ZCMS中的文章编辑器是UEditor,我曾经在写了一个UEditor插件叫uploadLocalImage,作用是自动上传粘贴到文章编辑器中的本地图片到服务器。在从word文档中copy内容到编辑器中就可以自动上传其中的图片了。 在之前的笔记 #16 中有记录,在chrome插件中是通过NPAPI调用本地dll文件去读取本地文件,chrome45及以后的版本,加强了安全限制,禁止了NPAPI,所以chrome插件不能再访问本地文件了。 现在的思路是要求客户安装一个可执行程序,这个程序在本地启一个httpserver,编辑器中用js通过ajax和本地的httpserver通讯,通知这个本地服务上传本地硬盘上的文件到cms后台去。从而解决js不能访问本地文件的限制。而且这种方式与浏览器无关,不用为不同的浏览器开发插件了。
WebHostBuilder
services.AddCors (options => options.AddPolicy ("AllowAll", policy => policy.AllowAnyHeader ().AllowAnyMethod ().AllowAnyOrigin ().AllowCredentials ()));
经测试可跨域访问
public IActionResult status (string name) { var jsonObj = new { version = "1.0.0", status = "ok", error = "", }; return Json (jsonObj); }
或
public object status (string name) { var jsonObj = new { version = "1.0.0", status = "ok", error = "", }; return jsonObj; }
$.ajax({ url: 'http://localhost:10808/localupload', type: 'POST', contentType: 'application/json', data: JSON.stringify({ "action":"localupload", "param1":"file:///C:\\Users\\abeet\\AppData\\Local\\Temp\\ksohtml\\wps58D8.tmp.jpg", "sendUrl":"http://localhost/api/catalogresources/9191/frontupload?siteID=14", "localSize":1024, "localExt":"gif,jpg,bmp,svg,png", "cookie":"IPCity=%E6%9C%AA%E7%9F%A5; ASPSESSIONIDQQARATRD=AEHBAMACAEIMHEHGPOGLDGEO" }) }).then(function(res){ console.log(res) },function(res){ console.error(res) })
{ "action":"localupload", "param1":"file:///C:\\Users\\abeet\\AppData\\Local\\Temp\\ksohtml\\wps7D7A.tmp.jpg", "sendUrl":"http://localhost/api/catalogresources/9191/frontupload?siteID=14", "localSize":1024, "localExt":"gif,jpg,bmp,svg,png", "cookie":"IPCity=%E6%9C%AA%E7%9F%A5; ASPSESSIONIDQQARATRD=AEHBAMACAEIMHEHGPOGLDGEO" }
结果有错误,在java类里打断点跟踪后发现,其一要传递siteID和addUser,其二我们后台java方法限定了表单元素的name为file,调整后,顺利地通过c#上传了临时文件夹下的图片。
dotnet build -r win10-x64
winsw uninstall winsw install winsw start
The text was updated successfully, but these errors were encountered:
No branches or pull requests
目的
在ZCMS中的文章编辑器是UEditor,我曾经在写了一个UEditor插件叫uploadLocalImage,作用是自动上传粘贴到文章编辑器中的本地图片到服务器。在从word文档中copy内容到编辑器中就可以自动上传其中的图片了。
在之前的笔记 #16 中有记录,在chrome插件中是通过NPAPI调用本地dll文件去读取本地文件,chrome45及以后的版本,加强了安全限制,禁止了NPAPI,所以chrome插件不能再访问本地文件了。
现在的思路是要求客户安装一个可执行程序,这个程序在本地启一个httpserver,编辑器中用js通过ajax和本地的httpserver通讯,通知这个本地服务上传本地硬盘上的文件到cms后台去。从而解决js不能访问本地文件的限制。而且这种方式与浏览器无关,不用为不同的浏览器开发插件了。
实现过程
在asp.net的官网发现asp .net core的入门特别简单,并且明显是用到了webserver的,于是安装.net core sdk,并试运行一个示例,成功
WebHostBuilder
WebHostBuilder
,发现这篇文章,http://www.cnblogs.com/artech/p/net-core-hello-world.html 文中附有源码,将源码下下来,运行之期间还在github上找了一个简单示例,并根据这个示例尝试调整配置
https://github.com/SunKD/practice-portfolio/blob/master/Program.cs
https://github.com/geruchvitaliy/Demo-AspNetCore-ApiEntityFramework/blob/fc22193f74032a5a0bbff04e4989e93cca6a1707/src/Api/Startup.cs
https://github.com/SlingingCode/Healthy/blob/9fc16e7a6b11f10266c755eea0874e25faa6f784/Healthy.API/Startup.cs
经测试可跨域访问
发现返回json数据的写法
或
https://stackoverflow.com/questions/41597455/net-core-webapi-unable-to-post-data-with-postman-error-415-unsupported-me
https://github.com/tautvisv/HPTB/blob/master/HolidaysPlanningTool/src/HolidaysPlanningToolWeb/Controllers/ManageController.cs
https://github.com/SlingingCode/Healthy/blob/master/Healthy.API/Controllers/PersonsController.cs
感觉太复杂,.net core里应该会有提供更简单的方法。
看来.net core里没有HttpWebRequest,.net framework里有 HttpWebRequest。
怎么办?
先试试google一下“asp.net core HttpWebRequest”
找了一篇文章 https://zhuanlan.zhihu.com/p/22764927 ,试试用它这个写法
看来只能用 WebRequest了,
参考一下
https://github.com/qinyuanpei/HttpServer/blob/master/HTTPServer/HTTPClient/Program.cs
的写法试试,向远程服务器请求内容成功。
接下来需要发送文件了。
找到一些参考如
https://github.com/xiongc169/20160331-Hs.web/blob/master/hs.web/hs.console/utility/upload/UploadUtility2.cs
结果有错误,在java类里打断点跟踪后发现,其一要传递siteID和addUser,其二我们后台java方法限定了表单元素的name为file,调整后,顺利地通过c#上传了临时文件夹下的图片。
dotnet build -r win10-x64
https://www.cnblogs.com/sorex/archive/2012/05/16/2502001.html
需要特别的写法,还需要使用installutil.exe 去安装,这个安装文件客户的机器上未必会有
https://github.com/kohsuke/winsw
winsw 可以将Windows上的任何一个程序注册为服务
使用PostMan尝试连接 http://localhost:10808/ 成功!
The text was updated successfully, but these errors were encountered: