把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("保存成功");
}