我与显示来自服务器的Z文件的工作:/文件目录。问题是,当PDF和JPEG/JPG文件在本地主机的Iframe内正确呈现时,当我使用IIS服务器IP名称192.168.xxx.xxx:8081/Home.aspx时,它们不呈现。我也有一个下载按钮,用户可以在其中下载文件。 Iframe和下载按钮指向相同的源,但Iframe不会正确返回/显示文件。它只是显示空白。PDF和JPEG文件不会在iframe中显示,但可在本地主机
这里是源URL的一个例子:\ 192.168.xxx.xxx \ Z $ \文件目录\ PDF文件\ cyber.pdf。
哦,顺便说一句,我也将它们映射到iFrame和动态下载按钮。
protected string GetPath(TreeNode treenode)
{
string[] array = new string[100];
string path = string.Empty;
int depth = treenode.Depth;
TreeNode node = new TreeNode();
node = treenode;
array[0] = node.Value;
for (int i = 1; i <= depth; i++)
{
array[i] = node.Parent.Value;
node = node.Parent; ;
}
//path = "~/";
path = @"\\192.168.3.12\Z$\";
for (int i = depth; i >= 0; i--)
{
if (Path.GetExtension(array[i].ToString()) == string.Empty)
{
//path += array[i].ToString() + "/";
path += array[i].ToString() + @"\";
}
else
path += array[i].ToString();
}
return path;
}
protected void trvNews_SelectedNodeChanged(object sender, EventArgs e)
{
try
{
if (trvNews.SelectedNode.Expanded == true)
{
trvNews.SelectedNode.Collapse();
trvNews.SelectedNode.Selected = false;
}
else if(trvNews.SelectedNode.Expanded == false)
trvNews.SelectedNode.Expand();
if (trvNews.SelectedNode.ChildNodes.Count == 0)
{
if (Path.GetExtension(trvNews.SelectedNode.Text) == string.Empty)
{
hfPath.Value = GetPath(trvNews.SelectedNode);
//ListDirectory(trvNews, Server.MapPath(hfPath.Value), "NoChild");
ListDirectory(trvNews, hfPath.Value, "NoChild");
Session["Count"] = "Enabled";
}
else
{
string test2 = Path.GetFullPath(hfPath.Value);
string path = hfPath.Value + trvNews.SelectedNode.Text;
//site = "DocumentViewer.aspx?=" + Path.GetFileName(path);
string url = "DocumentViewer.aspx?=" + Path.GetFileName(path);
Session["Path"] = path;
//ClientScript.RegisterStartupScript(typeof(Page), "Sigma", "open_win()", true);
ScriptManager.RegisterClientScriptBlock(this, GetType(), "newpage", "open_win('" + url + "');", true);
Session["Count"] = "Enabled";
}
}
string test = Session["Count"].ToString();
if (Session["Count"].ToString() == "Enabled")
btnBack.Visible = true;
}
catch (Exception ex)
{
LogError(ex, "User");
}
}
这是第一页中的代码,因为用户单击该文件以查看/下载它。下一页是..
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
string path = Session["Path"].ToString();
int length = path.Length;
lblHead.Text = Path.GetFileName(path);
System.IO.FileInfo file = new System.IO.FileInfo(Session["Path"].ToString());
if (Path.GetExtension(path) == ".pdf")
{
pnlPdf.Visible = true;
if (Session["FromNews"] != null)
framePdf.Attributes["src"] = FormulatePathPDFNews(path);
else
{
framePdf.Attributes["src"] = "\\\\" + file.FullName;
}
}
else if (Path.GetExtension(path) == ".jpeg" || Path.GetExtension(path) == ".jpg")
{
pnlJpeg.Visible = true;
//imageJpeg.Attributes["src"] = FormulatePath(path);
imageJpeg.Attributes["src"] = file.FullName;
}
}
}
catch (Exception ex)
{
LogError(ex, "User");
}
}
的下载按钮,这就是:
protected void btnDownload_Click(object sender, EventArgs e)
{
try
{
if (Path.GetExtension(Session["Path"].ToString()) != null)
{
System.IO.FileInfo file = new System.IO.FileInfo(Session["Path"].ToString());
if (file.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}
else
Response.Write("This file does not exist.");
}
}
catch (Exception ex)
{
LogError(ex, "User");
}
}
他们正在努力在本地主机完全正常,但在IIS服务器时不显示。有小费吗?
是否IIS下运行的网站有权限的网络目录的帐户和它的文件吗? – Sethcran
如何在IIS中设置权限?我设定目录被所有人看到只是为了测试这个想法。但它仍然是一样的。文件无法显示。 –