这样在本机可以正确浏览到,但是不是本机就看不到这张图片?请教有什么解决办法?
我取图片的路径的方式是:string filepath = Server.MapPath(@"~/Modules/ProductSystem/Picture");
17 个解决方案
#1
不要进行Server.MapPath就可以了
这个是映射到服务器的物理路径用的
这个是映射到服务器的物理路径用的
#2
不行啊 不用Server.MapPath 我将绝对路径写进去 也是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
我想要的效果是在网页上显示的图片路径是http://XXX.XX.X.X//...这样才能放在服务器上让其他人浏览
我想要的效果是在网页上显示的图片路径是http://XXX.XX.X.X//...这样才能放在服务器上让其他人浏览
#3
因为我的图片是根据数据动太生成的柱形图表,所以也不能一开始就绑定在控件上 大家帮帮忙
#4
用一个页面来读取并输出这个图片。这样还可以让访客不知道你的图片真实地址!
#5
就是不知道如何才能让客户端读到我的地址啊,图片输出的路径是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
这样的路径客户端是读不到的
在线等~~解决就结帖
这样的路径客户端是读不到的
在线等~~解决就结帖
#6
mydreamf(小枫) ( ) 信誉:100 Blog 加为好友 2007-06-30 10:29:16 得分: 0
就是不知道如何才能让客户端读到我的地址啊,图片输出的路径是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
这样的路径客户端是读不到的
在线等~~解决就结帖
----------------------------------------------------------------------
用一个专门的页面获取并输出,客户端就不需要知道你的地址啊!因为他始终请求一个页面!只不过参数不同而已!
就是不知道如何才能让客户端读到我的地址啊,图片输出的路径是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
这样的路径客户端是读不到的
在线等~~解决就结帖
----------------------------------------------------------------------
用一个专门的页面获取并输出,客户端就不需要知道你的地址啊!因为他始终请求一个页面!只不过参数不同而已!
#7
<asp:image src="picture.aspx?ID=0001" />
你把src连接到一个页面,这个页面的功能就是生成一个图片。
你把src连接到一个页面,这个页面的功能就是生成一个图片。
#8
picture.aspx里面的内容:
protected void Page_Load(object sender, EventArgs e)
{
byte[] imgByteArray = GetImage("1");
if (imgByteArray == null) return;
if (imgByteArray.Length <= 78) return;
MemoryStream stream = new MemoryStream();
Int32 offset = 78;//去除78字节的表头
stream.Write(imgByteArray, offset, imgByteArray.Length - offset);
//显示图片
System.Drawing.Image m_Bitmap = System.Drawing.Image.FromStream(stream);
//成功的方法1
//string path = Server.MapPath(".");
//string filename = path + "\\temp";
//m_Bitmap.Save(filename);
//成功的方法1
//成功的方法2
byte[] mybytes = stream.GetBuffer();
Response.Clear();
Response.ContentType = "jpeg";
Response.BinaryWrite(mybytes);
Response.End();
//成功的方法2
stream.Close();
}
private byte[] GetImage(string employeeID)
{
string connString;
//数据库连接字符串,根据你的需要修改
connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True;User Instance=True";
using (SqlConnection conn = new SqlConnection(connString))
{
string sqlSelect = "SELECT Photo FROM Employees WHERE EmployeeID = " + employeeID;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlSelect;
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow))
{
if (dr.Read())
{
if (dr[0] != null)
{
byte[] byteImg = (byte[])dr[0];
return byteImg;
}
}
}
}
return null;
}
用的Northwind数据库
protected void Page_Load(object sender, EventArgs e)
{
byte[] imgByteArray = GetImage("1");
if (imgByteArray == null) return;
if (imgByteArray.Length <= 78) return;
MemoryStream stream = new MemoryStream();
Int32 offset = 78;//去除78字节的表头
stream.Write(imgByteArray, offset, imgByteArray.Length - offset);
//显示图片
System.Drawing.Image m_Bitmap = System.Drawing.Image.FromStream(stream);
//成功的方法1
//string path = Server.MapPath(".");
//string filename = path + "\\temp";
//m_Bitmap.Save(filename);
//成功的方法1
//成功的方法2
byte[] mybytes = stream.GetBuffer();
Response.Clear();
Response.ContentType = "jpeg";
Response.BinaryWrite(mybytes);
Response.End();
//成功的方法2
stream.Close();
}
private byte[] GetImage(string employeeID)
{
string connString;
//数据库连接字符串,根据你的需要修改
connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True;User Instance=True";
using (SqlConnection conn = new SqlConnection(connString))
{
string sqlSelect = "SELECT Photo FROM Employees WHERE EmployeeID = " + employeeID;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlSelect;
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow))
{
if (dr.Read())
{
if (dr[0] != null)
{
byte[] byteImg = (byte[])dr[0];
return byteImg;
}
}
}
}
return null;
}
用的Northwind数据库
#9
能不能不单独做一个页面呢?就直接在 image控件上显示图片 让路径跟http://zi.csdn.net/2007.06/now120x60.gif 类似
#10
mydreamf(小枫) ( ) 信誉:100 Blog 加为好友 2007-06-30 10:42:59 得分: 0
能不能不单独做一个页面呢?就直接在 image控件上显示图片 让路径跟http://zi.csdn.net/2007.06/now120x60.gif 类似
-----------------------------------------------------------
那你要在IIS上做虚拟目录!不然是没有办法的!
能不能不单独做一个页面呢?就直接在 image控件上显示图片 让路径跟http://zi.csdn.net/2007.06/now120x60.gif 类似
-----------------------------------------------------------
那你要在IIS上做虚拟目录!不然是没有办法的!
#11
我做了虚拟目录了 但是路径还是一样啊
#12
设一站点:http://zi.csdn.net/指到F:\\useforcompany\\KimonOASystem\\Modules\\下面。生成图片地址的时候就这地址:F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture\\1.gif.
那么路径为:http://zi.csdn.net/ProductSystem/picture/1.gif
那么路径为:http://zi.csdn.net/ProductSystem/picture/1.gif
#13
在保存图片地址的时候,用虚拟路径啊!
#14
这是我保存路径的方法 public string CreateColumn()
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption = _title;
// objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue";
////x,y轴的图示说明
//objChart.Axes[0].HasTitle = true;
//objChart.Axes[0].Title.Caption = "时间";
//objChart.Axes[1].HasTitle = true;
//objChart.Axes[1].Title.Caption = "利润";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue = true;
string filename = "123.gif";
string strAbsolutePath =_phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
return strAbsolutePath;
}
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption = _title;
// objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue";
////x,y轴的图示说明
//objChart.Axes[0].HasTitle = true;
//objChart.Axes[0].Title.Caption = "时间";
//objChart.Axes[1].HasTitle = true;
//objChart.Axes[1].Title.Caption = "利润";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue = true;
string filename = "123.gif";
string strAbsolutePath =_phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
return strAbsolutePath;
}
#15
_phaysicalimagepath 的值是 Server.MapPath(@"~/Modules/ProductSystem/Picture");
#16
string strAbsolutePath =_phaysicalimagepath + "\\" + filename;
--------------------------------------------------------------
你完全可以这样写
string strAbsolutePath ="F:\\Img\\Picture"+ "\\" + filename;
把web和保存路径分开,不过Picture文件夹要加asp.net的操作权限。然后把虚拟目录指过去就OK了
--------------------------------------------------------------
你完全可以这样写
string strAbsolutePath ="F:\\Img\\Picture"+ "\\" + filename;
把web和保存路径分开,不过Picture文件夹要加asp.net的操作权限。然后把虚拟目录指过去就OK了
#17
感谢大家..虽然问题还是没解决-_-# 下班了 回去再想办法 结帖了
#1
不要进行Server.MapPath就可以了
这个是映射到服务器的物理路径用的
这个是映射到服务器的物理路径用的
#2
不行啊 不用Server.MapPath 我将绝对路径写进去 也是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
我想要的效果是在网页上显示的图片路径是http://XXX.XX.X.X//...这样才能放在服务器上让其他人浏览
我想要的效果是在网页上显示的图片路径是http://XXX.XX.X.X//...这样才能放在服务器上让其他人浏览
#3
因为我的图片是根据数据动太生成的柱形图表,所以也不能一开始就绑定在控件上 大家帮帮忙
#4
用一个页面来读取并输出这个图片。这样还可以让访客不知道你的图片真实地址!
#5
就是不知道如何才能让客户端读到我的地址啊,图片输出的路径是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
这样的路径客户端是读不到的
在线等~~解决就结帖
这样的路径客户端是读不到的
在线等~~解决就结帖
#6
mydreamf(小枫) ( ) 信誉:100 Blog 加为好友 2007-06-30 10:29:16 得分: 0
就是不知道如何才能让客户端读到我的地址啊,图片输出的路径是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
这样的路径客户端是读不到的
在线等~~解决就结帖
----------------------------------------------------------------------
用一个专门的页面获取并输出,客户端就不需要知道你的地址啊!因为他始终请求一个页面!只不过参数不同而已!
就是不知道如何才能让客户端读到我的地址啊,图片输出的路径是F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture
这样的路径客户端是读不到的
在线等~~解决就结帖
----------------------------------------------------------------------
用一个专门的页面获取并输出,客户端就不需要知道你的地址啊!因为他始终请求一个页面!只不过参数不同而已!
#7
<asp:image src="picture.aspx?ID=0001" />
你把src连接到一个页面,这个页面的功能就是生成一个图片。
你把src连接到一个页面,这个页面的功能就是生成一个图片。
#8
picture.aspx里面的内容:
protected void Page_Load(object sender, EventArgs e)
{
byte[] imgByteArray = GetImage("1");
if (imgByteArray == null) return;
if (imgByteArray.Length <= 78) return;
MemoryStream stream = new MemoryStream();
Int32 offset = 78;//去除78字节的表头
stream.Write(imgByteArray, offset, imgByteArray.Length - offset);
//显示图片
System.Drawing.Image m_Bitmap = System.Drawing.Image.FromStream(stream);
//成功的方法1
//string path = Server.MapPath(".");
//string filename = path + "\\temp";
//m_Bitmap.Save(filename);
//成功的方法1
//成功的方法2
byte[] mybytes = stream.GetBuffer();
Response.Clear();
Response.ContentType = "jpeg";
Response.BinaryWrite(mybytes);
Response.End();
//成功的方法2
stream.Close();
}
private byte[] GetImage(string employeeID)
{
string connString;
//数据库连接字符串,根据你的需要修改
connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True;User Instance=True";
using (SqlConnection conn = new SqlConnection(connString))
{
string sqlSelect = "SELECT Photo FROM Employees WHERE EmployeeID = " + employeeID;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlSelect;
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow))
{
if (dr.Read())
{
if (dr[0] != null)
{
byte[] byteImg = (byte[])dr[0];
return byteImg;
}
}
}
}
return null;
}
用的Northwind数据库
protected void Page_Load(object sender, EventArgs e)
{
byte[] imgByteArray = GetImage("1");
if (imgByteArray == null) return;
if (imgByteArray.Length <= 78) return;
MemoryStream stream = new MemoryStream();
Int32 offset = 78;//去除78字节的表头
stream.Write(imgByteArray, offset, imgByteArray.Length - offset);
//显示图片
System.Drawing.Image m_Bitmap = System.Drawing.Image.FromStream(stream);
//成功的方法1
//string path = Server.MapPath(".");
//string filename = path + "\\temp";
//m_Bitmap.Save(filename);
//成功的方法1
//成功的方法2
byte[] mybytes = stream.GetBuffer();
Response.Clear();
Response.ContentType = "jpeg";
Response.BinaryWrite(mybytes);
Response.End();
//成功的方法2
stream.Close();
}
private byte[] GetImage(string employeeID)
{
string connString;
//数据库连接字符串,根据你的需要修改
connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True;User Instance=True";
using (SqlConnection conn = new SqlConnection(connString))
{
string sqlSelect = "SELECT Photo FROM Employees WHERE EmployeeID = " + employeeID;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlSelect;
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow))
{
if (dr.Read())
{
if (dr[0] != null)
{
byte[] byteImg = (byte[])dr[0];
return byteImg;
}
}
}
}
return null;
}
用的Northwind数据库
#9
能不能不单独做一个页面呢?就直接在 image控件上显示图片 让路径跟http://zi.csdn.net/2007.06/now120x60.gif 类似
#10
mydreamf(小枫) ( ) 信誉:100 Blog 加为好友 2007-06-30 10:42:59 得分: 0
能不能不单独做一个页面呢?就直接在 image控件上显示图片 让路径跟http://zi.csdn.net/2007.06/now120x60.gif 类似
-----------------------------------------------------------
那你要在IIS上做虚拟目录!不然是没有办法的!
能不能不单独做一个页面呢?就直接在 image控件上显示图片 让路径跟http://zi.csdn.net/2007.06/now120x60.gif 类似
-----------------------------------------------------------
那你要在IIS上做虚拟目录!不然是没有办法的!
#11
我做了虚拟目录了 但是路径还是一样啊
#12
设一站点:http://zi.csdn.net/指到F:\\useforcompany\\KimonOASystem\\Modules\\下面。生成图片地址的时候就这地址:F:\\useforcompany\\KimonOASystem\\Modules\\ProductSystem\\Picture\\1.gif.
那么路径为:http://zi.csdn.net/ProductSystem/picture/1.gif
那么路径为:http://zi.csdn.net/ProductSystem/picture/1.gif
#13
在保存图片地址的时候,用虚拟路径啊!
#14
这是我保存路径的方法 public string CreateColumn()
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption = _title;
// objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue";
////x,y轴的图示说明
//objChart.Axes[0].HasTitle = true;
//objChart.Axes[0].Title.Caption = "时间";
//objChart.Axes[1].HasTitle = true;
//objChart.Axes[1].Title.Caption = "利润";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue = true;
string filename = "123.gif";
string strAbsolutePath =_phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
return strAbsolutePath;
}
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption = _title;
// objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue";
////x,y轴的图示说明
//objChart.Axes[0].HasTitle = true;
//objChart.Axes[0].Title.Caption = "时间";
//objChart.Axes[1].HasTitle = true;
//objChart.Axes[1].Title.Caption = "利润";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue = true;
string filename = "123.gif";
string strAbsolutePath =_phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
return strAbsolutePath;
}
#15
_phaysicalimagepath 的值是 Server.MapPath(@"~/Modules/ProductSystem/Picture");
#16
string strAbsolutePath =_phaysicalimagepath + "\\" + filename;
--------------------------------------------------------------
你完全可以这样写
string strAbsolutePath ="F:\\Img\\Picture"+ "\\" + filename;
把web和保存路径分开,不过Picture文件夹要加asp.net的操作权限。然后把虚拟目录指过去就OK了
--------------------------------------------------------------
你完全可以这样写
string strAbsolutePath ="F:\\Img\\Picture"+ "\\" + filename;
把web和保存路径分开,不过Picture文件夹要加asp.net的操作权限。然后把虚拟目录指过去就OK了
#17
感谢大家..虽然问题还是没解决-_-# 下班了 回去再想办法 结帖了