我是C#的新手,我有以下问题。
我必须检索一个 hello.jpg 文件,该文件位于我项目的子目录中。
所以我认为我必须将相对路径放入字符串中并使用此字符串来创建Image对象或类似的东西。
你能帮助我吗?
编辑:
我已将此代码插入到我的课程中:
private System.Web.HttpServerUtility server;
protected System.Drawing.Image _backgroundImg = System.Drawing.Image.FromFile(server.MapPath("~/Path/Relative/To/Root.jpg"));
但是我收到以下错误消息:
错误76字段初始值设定项无法引用非静态字段, 方法或财产 ' PdfReport.iTextDocumentBase.server' C:\ Develop \ EarlyWarning \ public \ Implementazione \ Ver2 \ PdfReport \ iTextDocumentBase.cs 44 87 PdfReport 错误77字段初始值设定项无法引用非静态字段, 方法或财产 ' PdfReport.iTextDocumentBase.server' C:\ Develop \ EarlyWarning \ public \ Implementazione \ Ver2 \ PdfReport \ iTextDocumentBase.cs 44 87 PdfReport
为什么呢?我该怎么做才能解决?
答案 0 :(得分:1)
protected void Page_Load(object sender, EventArgs e)
{
string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Path/Relative/To/Root.jpg"));
int i = 1;
foreach (string s in filesindirectory)
{
s.Split();
Image img = new Image();
img.ID = "image" + i.ToString();
Response.Write(s.ToString()+"</br>");
string fileName = Path.GetFileName(s.ToString());
img.ImageUrl = "~/images/"+fileName;
img.Visible = true;
Page.Controls.Add(img);
i++;
}
}
答案 1 :(得分:0)
您可以使用Server.MapPath
查找文件,Image.FromFile
加载文件:
var image = Image.FromFile(Server.MapPath("~/Path/Relative/To/Root.jpg"));
请注意这一点,但是Image
使用GDI +,这可能不是Web服务器上最好的。
这假设您想要在服务器代码中使用图像,当然。如果你想将它显示给客户端,你只需使用HTML,不需要服务器代码。
答案 2 :(得分:0)
在lbllogo中存储图像路径 lblLogo.Text = fuLogo.FileName.ToString();
使用GetFileName显示图像 lblLogo.Text = System.IO.Path.GetFileName(imgLogo.ImageUrl);
答案 3 :(得分:0)
实际上这里的答案是正确的,但似乎有一点混乱,因为你的新手。
以下是解决此问题的方法:
现在,为了在页面中显示图像,您应该在aspx页面中创建一个Image控件,然后在其中显示 hello.jpg 图像。
在Page_Load事件中执行以下操作:
protected void Page_Load(object sender, EventArgs e)
{
Image img = new Image();
img.ImageUrl = "~/Images/hello.jpg";
Page.Controls.Add(img);
}
同样,其他答案也是正确的,但您需要在答案中更改图片的正确网址。
而且我还注意到您尝试在代码中创建server
对象?您不必创建服务器对象,因为您已经在页面控件中使用它,并且可以像Page.Server
一样访问它。