1

我有 2 个项目,1 个是 Web 应用程序,另一个是 WPF,在我的 Web 应用程序中,我有一个上传页面,允许用户上传他们的文件,我使用 Server.MapPath(@"~/something/") 作为目录但是如何我是否要在我的 WPF 应用程序中检索该文件,我可以通过键入完整路径 C:/programfiles/projects ... 等来检索,但我正在从数据库中检索目录,并且在数据库中它看起来像 ~/something/文件名.jpg .

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

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

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

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

连接字符串:

  <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

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

4

1 回答 1

3

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

还是您的 WPF 应用程序在桌面上,而 Web 服务器在其他地方?

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

在另一种情况下可以使用相同的方法,但这取决于您是否拥有与存储文件的 Web 服务器目录的 UNC 共享。如果没有,您的 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)) 
于 2013-08-23T03:36:01.533 回答