2013-08-23 35 views
1

我有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的连接字符串中添加一个域目录,然后我需要使用它并将它与数据库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" /> 

我从我的数据库如何检索(网址,使用实体框架daoWordPuzzle是一个类文件,其中包括CRUD代码):

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

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

回答

3

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

或者是你的桌面上的WPF应用程序和Web服务器是在别的地方?

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

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

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)) 
+0

在这种情况下,桌面 – user2376998

+0

上,您的WPF应用程序将需要使用它的URL,而不是访问该文件的文件路径。因此,将相对路径存储在数据库中,并在代码中预先填入URL的开头部分(使您可以轻松移动应用程序并只更改配置的一部分)。因此,例如,如果您的Web应用程序位于http:// localhost:1234/MyApp中,并且上传内容在〜/内容中。你的相对URL是/something/file1.png,你的URL前缀/ base是http:// localhost:1243/MyApp。所以你构建完整的URL像这样http:// localhost:1243/MyApp/something/file1.png,你的WPF应用程序可以这样访问它 – Arsen

+0

在哪里添加它们? ConnectionString的? – user2376998

相关问题