如何在服务器映射方法中给出绝对路径
本文关键字:路径 方法 服务器 映射 | 更新日期: 2023-09-27 18:08:26
我有一个文件夹,里面有几个PDF文件,插入和查看所有这些PDF文件不需要两种方法。我必须移动此文件夹才能将此文件夹放置在项目文件之外。因此,我必须使用绝对路径。我在网上试过一些女生,但都不适合我。
以下代码在按钮clcik事件中
string directoryPath = @"D:'competion'pdfFolder'";
string svrPath = Server.MapPath(directoryPath);
DataSet ds = new DataSet();
string extension = Path.GetExtension(FileUpload1.FileName);
if ((FileUpload1.HasFile))
{
if (extension == ".pdf")
{
if (grdPolicyDetails.Rows.Count > 0)
{
//Few methods are invoked in the body
}
}
}
if-else语句中还有其他部分,但我还没有添加这些代码。
Server.MapPath
方法仅适用于作为web应用程序结构一部分的相对路径。如果您需要提供位于外部的PDF文件,您可能需要有一些端点来读取服务器上的文件内容并将其流式传输到客户端。
例如:
string pdfPath = @"D:'competion'pdfFolder'myfile.pdf";
this.Response.ContentType = "application/pdf";
this.Response.TransmitFile(pdfPath);
this.Response.End();
我创建了一个没有文件夹"testVirPath"的测试项目。
在我的iis中,我添加了一个虚拟目录,指向不同驱动器(除了我的项目或发布的驱动器(上的文件夹(testVirPath(。我在本地主机上添加了必要的权限和与我发布的站点相同的用户。
然后,我在testVirPath文件夹中添加了一些pdf文件,并将该项目发布到iis。试试看。这将列出存储在testVirPath文件夹中的pdf文件。
[家庭控制器]
public ActionResult Files()
{
ViewBag.TheFiles = GetFiles(Server.MapPath("/testVirPath/"));
return View();
}
private FileInfo[] GetFiles(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles();
return files;
}
[文件视图]
<div>
@foreach (FileInfo f in @ViewBag.TheFiles)
{
<p>@f.FullName</p>
}
</div>
string directoryPath = Server.MapPath("~/competion/pdfFolder/");
试试这个!!
请使用这些代码上传pdf。
if(fuDoc.HasFile({
string ext = "";
string fnm = Path.GetFileName(fuDoc.PostedFile.FileName).ToLower();
ext = Path.GetExtension(fuDoc.PostedFile.FileName).ToLower();
if ((ext != ".doc") & (ext != ".pdf") & (ext != ".docx"))
{
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('Please select .doc or .pdf or .docx files only');", true);
fuDoc.Focus();
return;
}
fuDoc.PostedFile.SaveAs(Server.MapPath("~/Upload/Documents/") + fuDoc.FileName);
strDoc = "Upload/Documents/" + fuDoc.FileName;
}