服务器的文件怎么被写入文件,如何将kml文件写入可公开访问的服务器?

我想从我的asp.net MVC 3应用程序呈现谷歌地图中的KML文件。如何将kml文件写入可公开访问的服务器?

从谷歌地图JavaScript API V3中,我使用KmlLayer('url')在谷歌地图中呈现kml。 我已经读过kml文件需要在公共可访问的服务器中。我可以使用第三方javascript在本地渲染kml文件,但它们可能容易出错。 (Loading a local .kml file using google maps?)

我想渲染的kml文件作为字节数组存储在SQL服务器数据库中。所以对于一个KML文件,我必须将字节数组写入一个具有kml扩展名的路径。我已经使用File.WriteAllBytes(path,byte)完成了这一操作,其中path = local path和byte = byte数组。这是在MVC应用程序的控制器中完成的。 这是代码:

public ActionResult MapView(int id)

{

Incident inc = db.Incidents.Find(id);

if (inc.IncidentDatas.Count != 0)

{

ViewBag.ListKmlUrls = kmlFileStore(inc);

}

return View(inc);

}

public List kmlFileStore(Incident inc)

{

List listKmlUrls = new List();

// Specify a "currently active folder"

string activeDir = @"c:\incident" + inc.incId + @"\incidentData";

//Create a new subfolder under the current active folder

string newPath = System.IO.Path.Combine(activeDir, "kmlFiles");

// Create the subfolder

System.IO.Directory.CreateDirectory(newPath);

String url;

foreach(var d in inc.IncidentDatas) {

url = @"c:\incident" + inc.incId + @"\incidentData\kmlFiles\" + d.id + ".kml";

//dataContent is byte[]

System.IO.File.WriteAllBytes(url, d.dataContent);

listKmlUrls.Add(url);

}

return listKmlUrls;

}

的想法是认为将通过viewbag访问的URL列表中的URL传递给JavaScript方法KmlLayer(...)。但这里的网址只是本地路径。

那么MVC应用如何将kml文件存储到可公开访问的服务器上,以便它可以将URL传递给KmlLayer(...)?这将不得不以编程方式完成。

我目前正在从本地访问我的MVC应用程序和数据库。我有一个静态IP和名称。我也想发布在线访问应用程序和数据库。不知道如何继续,请给我一些建议/指导。谢谢。

2012-01-24

Qwerty

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值