把DWG文件保存到服务器上
[id(26), helpstring("method SaveDwgToURL")] VARIANT_BOOL SaveDwgToURL(BSTR pszServerUrl, BSTR pszServerProgramUrl, BSTR pszComponentName, BSTR pszPort);
参数 |
说明 |
BSTR pszServerUrl |
服务器网址地址,如:www.mxdraw.com,如果传空,程序自动取当前网页的服务器. |
BSTR pszServerProgramUrl |
服务器的文件上传处理程序,如:upload.asp |
BSTR pszComponentName |
HTML组件名称,相当于一个HTML页面的Form中的中的file1 |
BSTR pszPort |
服务处理端口. 如:_T("80") |
成功返回TRUE
模拟一个文件表单提交上传文件,详细例程参考sampleAspNet中"保存dwg文件到服务器"按钮 模拟的表单提交,向服务器发送的请求,使用Fiddler工具能看见 因为Fiddler的问题, Fiddler工具查看本地服务器请求内容时,本地服务器ip地址需要写成http://127.0.0.1.,而不能写成http://localhost 下面的代码调用效果
if (!MxDrawXCtrl_Obj.SaveDwgToURL("http://127.0.0.1.", "/Save.aspx", "ComponentName", "6046")) { var ret = MxDrawXCtrl_Obj.Call("Mx_GetLastError",""); alert(ret.AtString(0)); } else { alert("成功"); }
等同于这个代码,这个代码可以放到htm文件中,运行执行
<form action="Save.aspx"method="post" enctype="multipart/form-data"> <input id="File1" type="file" name="ComponentName" /><br /> <input id="Submit1" type="submit" value="submit" /> </form>
例如: sampleAspNet中的例子
function savedwgurl() { MxDrawXCtrl_Obj = document.all.item("MxDrawXCtrl"); MxDrawXCtrl_Obj.focus(); //MxDrawXCtrl_Obj.SaveDwgToURL("http://www.192.168.1.102", "/Save.aspx", "ComponentName", "80"); if (!MxDrawXCtrl_Obj.SaveDwgToURL(getcurpath(), "/Save.aspx", "ComponentName", "")) { var ret = MxDrawXCtrl_Obj.Call("Mx_GetLastError",""); alert(ret.AtString(1)); } else { alert("成功"); } }
例如:Java中调用代码 客户端代码,file是文件提取组件名称
function savedwgurl(){ MxDrawXCtrl_Obj = document.all.item("MxDrawXCtrl"); MxDrawXCtrl_Obj.focus(); if (!MxDrawXCtrl_Obj.SaveDwgToURL(" http://10.10.28.7", "/web/mxAction.do", "file", "7001")) { var ret = MxDrawXCtrl_Obj.Call("Mx_GetLastError",""); alert(ret.AtString(1)); }else{ alert("保存成功"); } }
服务器端代码,file是文件提取字段名Servlet里执行这段代码
MxForm mf = (MxForm)actionForm; InputStream is = mf.getFile().getInputStream(); File destFile = new File("D:\civilize\code\web","test.dwg"); OutputStream os = new FileOutputStream( destFile ); byte[] buffer = new byte[400]; int length = 0; while( (length = is.read(buffer)) > 0 ) { os.write(buffer,0,length); } mf.getFile().destroy(); is.close(); os.close(); return null; // MxForm代码: import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; public class MxForm extends ActionForm { private FormFile file; public FormFile getFile() { return file; } public void setFile(FormFile file) { this.file = file; } }
例如: ASP.net + MVC调用
var dwgName = $("#dwgList option:selected").text(); var hostName = window.location.hostname; var port = window.location.port; var path = "http://" + hostName + ":" + port; alert(hostName+"==="+path); if (!jieTuCtrlObject.SaveDwgToURL(path, "Home/SaveDwgFile/?key=" + Math.random() + "&flag=" + flag, dwgName, "")) { alert(path); var ret = jieTuCtrlObject.Call("Mx_GetLastError", ""); alert(ret.AtString(1)); } else { var ret = jieTuCtrlObject.Call("Mx_GetLastError", ""); 得到服务器返回数据 alert(ret.AtString(1)); //alert("保存成功"); }