连接字符串数据源路径,用于从其他项目访问文件

时间:2013-08-23 03:22:38

标签: c# asp.net wpf connection-string datasource

我有2个项目,1个是Web应用程序,另一个是WPF,在我的Web应用程序中我有一个上传页面,允许用户上传他们的文件,我使用了Server.MapPath(@“〜/ something /”)目录但我如何在我的WPF应用程序中检索该文件,我可以通过键入完整路径C:/ programfiles / projects ...等来检索,但我从数据库中检索目录,在数据库中它读取就像那样〜 /something/filename.jpg。

我只在数据库中保存〜/ something / filename.jpg,如何在不手动输入完整路径的情况下检索完整路径?

完整路径位于另一个项目C:/programfiles/projects/visualstudio/projectname/something/filename.jpg。

如何在另一个项目中仅使用〜/ something / filename.jpg访问该文件?有一个错误,说路径不存在,除非我输入完整路径,但我不想这样。

有人说我们必须在我的App.Config的connectionstring中添加一个域目录,然后我需要使用它并将它与数据库url结合起来以获取我的完整路径。但我不知道该怎么做。

connectionstring:

  <add name="istellarEntities2" connectionString="metadata=res://*/ModelSQL.iStellar.csdl|res://*/ModelSQL.iStellar.ssdl|res://*/ModelSQL.iStellar.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=IMAC-PC10\SQLEXPRESS;initial catalog=istellar;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我如何从我的数据库中检索(URL,使用实体框架daoWordPuzzle是一个由CRUD代码组成的类文件):

@daoWordPuzzle.GetfileURL() // however this displays only ~/something/something.jpg

我需要有完整的路径。我该怎么做?

1 个答案:

答案 0 :(得分:3)

首先,一个简单的问题:您的WPF应用程序是否也在运行该网站的WEB SERVER上运行?

或者您的桌面和Web服务器上的WPF应用程序是否在其他地方?

在第一种情况下:您可以简单地将路径的第一部分存储在WPF应用程序的appSettings中,以告诉您目录的位置。例如,仅存储数据库列中路径的最后部分。这样,您可以使用System.IO命名空间中的Path.Combine()来查找位置。

在另一种情况下可以使用相同的方法,但这取决于您是否将UNC共享到存储文件的Web服务器目录。如果没有,您的WPF应用程序可能需要使用URL而不是文件路径通过HTTP访问文件。如果是,您只需将路径前缀存储在应用程序配置中,就像这样“\ WEBSERVER \ Something”

using System.Configuration;

string fileUploadDirectory = ConfigurationManager.AppSettings["FileUploadDirectory"];

// using Substring(1) to skip the ~ that is stored in the database and is returned by GetfileURL()
string fullFilePath = Path.Combine(fileUploadDirectory ,daoWordPuzzle.GetfileURL().Substring(1))