if (FileUpload1.HasFile)
{
string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
//string path = Server.MapPath(@"~\\"+Session["parentfolder"].ToString() +"\\"+ Session["brandname"].ToString() + "\\" + Seasonfolders.SelectedItem.Text + "\\" + stylefolders.SelectedItem.Text + "\\Images\\" + FileName);
string root = Server.MapPath("~");
string path = Path.GetDirectoryName(root);
string path1 = Path.GetDirectoryName(path);
string rootfolder = Path.GetDirectoryName(path1);
string imagepath = rootfolder + Session["brandname"].ToString() + "\\" + Seasonfolders.SelectedItem.Text + "\\" + stylefolders.SelectedItem.Text + "\\Images\\" + FileName;
FileUpload1.SaveAs(imagepath);
//objBAL.SaveImage("Image", Session["brandname"].ToString(), Seasonfolders.SelectedItem.Text, stylefolders.SelectedItem.Text, FileName, imagepath, Convert.ToInt32(Session["Empcode"]));
uploadedimage.ImageUrl = Server.MapPath(@"~/"+imagepath);
uploadedimage.DataBind();
}
uploadedimage是Image控件的ID。 imagepath的路径是E:\ Folder1 \ Folder2 \ Folder3 \ Images \ 1.png
图像已保存但我无法显示上传的图像。我是否需要在此行中添加任何显示图像的内容..
uploadedimage.ImageUrl = Server.MapPath(@"~/"+imagepath);
uploadedimage.DataBind();
答案 0 :(得分:1)
图片中的图片网址应该是这样的
"~/"+ imagepath
尝试删除Server.MapPath
答案 1 :(得分:1)
试试这个
在根目录中创建数据文件夹
if (FileUpload1.HasFile)
{
string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string imagepath =Server.MapPath("~/Data/"+FileName);
FileUpload1.SaveAs(imagepath);
uploadedimage.ImageUrl="~/"+imagepath;
}
答案 2 :(得分:1)
在iis上托管网站或内容不会以这种方式运作。在这方面需要学习一些概念,但最好的开始是理解什么是虚拟目录。
来自this页面的一句话:
在IIS 7中,每个应用程序都必须有一个虚拟目录,称为 root虚拟目录,并将应用程序映射到物理 包含应用程序内容的目录
所以这意味着这是应用程序的“内容”所在的目录;它可能是简单的文本文件,图像等,复杂的服务器端页面,如aspx甚至经典的asp或php等。现在托管的Web应用程序无法访问此目录之外的任何内容。
因此,您打算分享的路径不会那样。有几种方法可以处理这种情况。
在iis中,您可以创建一个子虚拟目录,并将其路径映射到图像所在的位置,以及图像所在的物理位置。
如果您的Web应用程序(在iis上托管时)可以访问映像所在的路径,您可以编写代码来读取文件,然后重新发送字节流,以便您的网页可以呈现图像正常。
第二种方法通常由处理程序(ashx)实现,您可以通过该处理程序将图像名称作为查询字符串参数传递,并返回字节。因此,简而言之,您可以这样做:
uploadedImage.ImageUrl = "~/MyImageHandler.ashx?filename=foo.png" //in ur server code.
在处理程序中,您可以编写如下内容:
public class MyImageHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// Comment out these lines first:
// context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
context.Response.ContentType = "image/png";
var filepath = @"E:\your_image_dir\" + Request.QueryString["filename"];
//Ensure you have permissions else the below line will throw exception.
context.Response.WriteFile(filepath);
}
public bool IsReusable {
get {
return false;
}
}
}