把图片进行缩略后显示不出来的问题~急 把图片进行缩略后显示不出来,路径绝对没错,用image控件指定绝对路径也显示不出来,,直接用acdsee或winxp看图,能看到图片啊,网大家指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在沒有顯示出圖片的頁面viewsource,找到你說的圖片地址,直接訪問一下看看.另外,你用的是什麽格式的圖? //建立虚拟路径//mPath=Server.MapPath("upFile");//保存到虚拟路径upImage.PostedFile.SaveAs(fpath);//为上传的图片建立引用//image=System.Drawing.Image.FromFile(savepath); //生成缩略图//newimage=image.GetThumbnailImage(200,200,callb,IntPtr.Zero);//把缩略图保存到指定的虚拟路径//newimage.Save(fpath);//释放image对象占用的资源//image.Dispose();//释放newimage对象的资源///newimage.Dispose(); hchxxzx--》(原创)一个实现图片上传/产生缩略图/在上传图片上写字功能的完整页面代码 这是页面代码 1<%@ Page language="c#" Codebehind="pic.aspx.cs" AutoEventWireup="false" Inherits="test.pic" %> 2<HTML> 3 <HEAD> 4 <title>pic</title> 5 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> 6 <meta name="CODE_LANGUAGE" Content="C#"> 7 <meta name="vs_defaultClientScript" content="JavaScript"> 8 <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> 9 </HEAD>10 <body>11 <form id="Form1" method="post" runat="server">12 <INPUT id="File1" type="file" name="File1" runat="server">13 <asp:button id="Button1" runat="server" Text="Button"></asp:button><BR>14 <table border="0" width="100%">15 <tr>16 <td>17 <asp:Image id="Image1" runat="server" Width="200px"></asp:Image>18 </td>19 <td>20 <asp:Image id="Image2" runat="server" Width="200px"></asp:Image>21 </td>22 <td>23 <asp:Image id="Image3" runat="server" Width="100px"></asp:Image>24 </td>25 </tr>26 </table>27 </form>28 </body>29</HTML>30 以下是后台代码 1using System; 2using System.Collections; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Web; 7using System.Web.SessionState; 8using System.Web.UI; 9using System.Web.UI.WebControls; 10using System.Web.UI.HtmlControls; 11 12namespace test 13{ 14 /**//// <summary> 15 /// pic 的摘要说明。 16 /// 功能:图片上传/保存至硬盘/生成缩略图/在图片上写字 17 /// </summary> 18 public class pic : System.Web.UI.Page 19 { 20 protected System.Web.UI.WebControls.Button Button1; 21 protected System.Web.UI.WebControls.Image Image1; 22 protected System.Web.UI.WebControls.Image Image2; 23 protected System.Web.UI.WebControls.Image Image3; 24 protected System.Web.UI.HtmlControls.HtmlInputFile File1; 25 26 private void Page_Load(object sender, System.EventArgs e) 27 { 28 if(!this.IsPostBack) 29 { 30 //接收参数 31 string filename = this.Request.QueryString["filename"]; 32 //如果参数不为空 33 //此处这样写,是一个比较安全全的写法,因为接收到的参数值也许是NULL 34 if(filename + "a" != "a") 35 { 36 //求取后缀名 37 string suffix = filename.Substring(filename.LastIndexOf(".")); 38 //显示图片 39 //分别为原图片/写字的图片(多一个w)/缩略图(多一个x) 40 this.Image1.ImageUrl = this.Server.MapPath("uploadfile/" + filename); 41 this.Image2.ImageUrl = this.Server.MapPath("uploadfile/" + filename.Replace(suffix,"w" + suffix)); 42 this.Image3.ImageUrl = this.Server.MapPath("uploadfile/" + filename.Replace(suffix,"x" + suffix)); 43 44 //显示图像控件 45 this.Image1.Visible = true; 46 this.Image2.Visible = true; 47 this.Image3.Visible = true; 48 } 49 else 50 { 51 //如果没有接收到参数,则隐藏页面中的图像控件 52 this.Image1.Visible = false; 53 this.Image2.Visible = false; 54 this.Image3.Visible = false; 55 } 56 } 57 } 58 59 60 /**//// <summary> 61 /// 上传图片 62 /// </summary> 63 /// <param name="sender"></param> 64 /// <param name="e"></param> 65 private void Button1_Click(object sender, System.EventArgs e) 66 { 67 //接收上传图片 68 System.Web.HttpPostedFile myPost = this.Request.Files[0]; 69 if(myPost.ContentLength !=0) 70 { 71 try 72 { 73 //定义上传路径(在当前目录下的uploadfile文件病例 74 string uploadpath = this.Server.MapPath("uploadfile"); 75 //取得文件名 76 string tmpfilename = myPost.FileName; 77 //文件名 78 string filename = tmpfilename.Substring(tmpfilename.LastIndexOf("\\") + 1); 79 80 //原文件的保存路径 81 string fileSavePath = uploadpath + "\\" + filename; 82 83 //保存原图片 84 myPost.SaveAs(fileSavePath); 85 86 //调用生成缩略图程序,生成缩略图及生成写字的图片 87 this.toImage(myPost.InputStream,uploadpath,filename); 88 89 //完成之后,重定向本页面,并带参数显示当前上传的图片 90 this.Response.Redirect("pic.aspx?filename=" + filename); 91 this.Response.End(); 92 } 93 catch(Exception ex) 94 { 95 throw ex; 96 } 97 finally 98 { 99 100 }101 }102 }103104105 /**//// <summary>106 /// 生成缩略图程序107 /// </summary>108 /// <param name="myStream">取到的流文件对象</param>109 /// <param name="uploadPath">要保存的路径</param>110 /// <param name="picName">上传的图片原文件名</param>111 private void toImage(System.IO.Stream myStream,string uploadPath,string picName)112 {113 //取得后缀名114 string suffix = picName.Substring(picName.LastIndexOf("."));115116 //缩略图的保存路径117 string fileXltPath = uploadPath + "\\" + picName.Replace(suffix,"x" + suffix);118 //写字图的保存路径119 string fileXztPath = uploadPath + "\\" + picName.Replace(suffix,"w" + suffix);120121122 //创建一个图像对象取得上传图片对象123 System.Drawing.Image myImage = System.Drawing.Image.FromStream(myStream,false);124 //对绘制前的图片产生一个缩略图(原图片一半大小)125 System.Drawing.Image thumbImage = myImage.GetThumbnailImage(myImage.Size.Width/2,myImage.Size.Height/2,null,System.IntPtr.Zero);126 //保存缩略图127 thumbImage.Save(fileXltPath,this.getImageFormat(suffix));128 //关闭缩略图对象129 thumbImage.Dispose();130131 //创建绘制对象132 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(myImage);133 g.DrawImage(myImage,0,0,myImage.Size.Width,myImage.Size.Height);134 //选择字体及字体大小135 System.Drawing.Font f = new Font("隶书",140);136 //定义字体颜色137 System.Drawing.Brush b = new SolidBrush(System.Drawing.Color.Red);138 //开始绘制,根据上述两种设定,添加绘制的上左位置139 g.DrawString("好好学习,天天向上",f,b,10,10);140 //关闭绘制对象141 g.Dispose();142 143 //保存绘制后上传图片144 myImage.Save(fileXztPath,myImage.RawFormat);145 //关闭图片对象146 myImage.Dispose();147 }148149 /**//// <summary>150 /// 根据图片的后缀名,返回要保存的图片格式151 /// </summary>152 /// <param name="suffix">带.号的后缀名</param>153 /// <returns>返回System.Drawing.Imaging.ImageForma对象</returns>154 private System.Drawing.Imaging.ImageFormat getImageFormat(string suffix)155 {156 System.Drawing.Imaging.ImageFormat myFormat;157 switch(suffix.ToLower())158 {159 case ".bmp":160 myFormat = System.Drawing.Imaging.ImageFormat.Bmp;161 break;162 case ".emf":163 myFormat = System.Drawing.Imaging.ImageFormat.Emf;164 break;165 case ".exif":166 myFormat = System.Drawing.Imaging.ImageFormat.Exif;167 break;168 case ".gif":169 myFormat = System.Drawing.Imaging.ImageFormat.Gif;170 break;171 case ".icon":172 myFormat = System.Drawing.Imaging.ImageFormat.Icon;173 break;174 case ".jpeg":175 case ".jpg":176 myFormat = System.Drawing.Imaging.ImageFormat.Jpeg;177 break;178 case ".png":179 myFormat = System.Drawing.Imaging.ImageFormat.Png;180 break;181 case ".tiff":182 myFormat = System.Drawing.Imaging.ImageFormat.Tiff;183 break;184 case ".wmf":185 myFormat = System.Drawing.Imaging.ImageFormat.Wmf;186 break;187 default:188 myFormat = System.Drawing.Imaging.ImageFormat.MemoryBmp;189 break;190 }191 return(myFormat);192 }193194195 Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码196 override protected void OnInit(EventArgs e)197 {198 //199 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。200 //201 InitializeComponent();202 base.OnInit(e);203 }204 205 /**//// <summary>206 /// 设计器支持所需的方法 - 不要使用代码编辑器修改207 /// 此方法的内容。208 /// </summary>209 private void InitializeComponent()210 { 211 this.Button1.Click += new System.EventHandler(this.Button1_Click);212 this.Load += new System.EventHandler(this.Page_Load);213214 }215 #endregion216 } 如何实现在同一个服务器上的不同站点间的登录信息共享? 装sql 2005时带的vs2005是不是不完整? 关于httpHandlers和gif、png,高手请进 求一个只能输入正整数或者带4位小数的正则表达市 如何卸载2005重装2003?会不会有冲突? 请问那里有asp.net函数表(c#)??? DataList 显示的图片,怎么让图片循环滚动? 这段代码是什么意思,呵呵,不太明白啊 求简单的数据调用,怎么弄?? 求解 C# asp.net中,怎样获得DataGrid中的某一项的值? 关于TreeView的无限分级的问题
另外,你用的是什麽格式的圖?
//mPath=Server.MapPath("upFile");
//保存到虚拟路径
upImage.PostedFile.SaveAs(fpath);
//为上传的图片建立引用
//image=System.Drawing.Image.FromFile(savepath);
//生成缩略图
//newimage=image.GetThumbnailImage(200,200,callb,IntPtr.Zero);
//把缩略图保存到指定的虚拟路径
//newimage.Save(fpath);
//释放image对象占用的资源
//image.Dispose();
//释放newimage对象的资源
///newimage.Dispose();
这是页面代码 1<%@ Page language="c#" Codebehind="pic.aspx.cs" AutoEventWireup="false" Inherits="test.pic" %>
2<HTML>
3 <HEAD>
4 <title>pic</title>
5 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
6 <meta name="CODE_LANGUAGE" Content="C#">
7 <meta name="vs_defaultClientScript" content="JavaScript">
8 <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
9 </HEAD>
10 <body>
11 <form id="Form1" method="post" runat="server">
12 <INPUT id="File1" type="file" name="File1" runat="server">
13 <asp:button id="Button1" runat="server" Text="Button"></asp:button><BR>
14 <table border="0" width="100%">
15 <tr>
16 <td>
17 <asp:Image id="Image1" runat="server" Width="200px"></asp:Image>
18 </td>
19 <td>
20 <asp:Image id="Image2" runat="server" Width="200px"></asp:Image>
21 </td>
22 <td>
23 <asp:Image id="Image3" runat="server" Width="100px"></asp:Image>
24 </td>
25 </tr>
26 </table>
27 </form>
28 </body>
29</HTML>
30
1using System;
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11
12namespace test
13{
14 /**//// <summary>
15 /// pic 的摘要说明。
16 /// 功能:图片上传/保存至硬盘/生成缩略图/在图片上写字
17 /// </summary>
18 public class pic : System.Web.UI.Page
19 {
20 protected System.Web.UI.WebControls.Button Button1;
21 protected System.Web.UI.WebControls.Image Image1;
22 protected System.Web.UI.WebControls.Image Image2;
23 protected System.Web.UI.WebControls.Image Image3;
24 protected System.Web.UI.HtmlControls.HtmlInputFile File1;
25
26 private void Page_Load(object sender, System.EventArgs e)
27 {
28 if(!this.IsPostBack)
29 {
30 //接收参数
31 string filename = this.Request.QueryString["filename"];
32 //如果参数不为空
33 //此处这样写,是一个比较安全全的写法,因为接收到的参数值也许是NULL
34 if(filename + "a" != "a")
35 {
36 //求取后缀名
37 string suffix = filename.Substring(filename.LastIndexOf("."));
38 //显示图片
39 //分别为原图片/写字的图片(多一个w)/缩略图(多一个x)
40 this.Image1.ImageUrl = this.Server.MapPath("uploadfile/" + filename);
41 this.Image2.ImageUrl = this.Server.MapPath("uploadfile/" + filename.Replace(suffix,"w" + suffix));
42 this.Image3.ImageUrl = this.Server.MapPath("uploadfile/" + filename.Replace(suffix,"x" + suffix));
43
44 //显示图像控件
45 this.Image1.Visible = true;
46 this.Image2.Visible = true;
47 this.Image3.Visible = true;
48 }
49 else
50 {
51 //如果没有接收到参数,则隐藏页面中的图像控件
52 this.Image1.Visible = false;
53 this.Image2.Visible = false;
54 this.Image3.Visible = false;
55 }
56 }
57 }
58
59
60 /**//// <summary>
61 /// 上传图片
62 /// </summary>
63 /// <param name="sender"></param>
64 /// <param name="e"></param>
65 private void Button1_Click(object sender, System.EventArgs e)
66 {
67 //接收上传图片
68 System.Web.HttpPostedFile myPost = this.Request.Files[0];
69 if(myPost.ContentLength !=0)
70 {
71 try
72 {
73 //定义上传路径(在当前目录下的uploadfile文件病例
74 string uploadpath = this.Server.MapPath("uploadfile");
75 //取得文件名
76 string tmpfilename = myPost.FileName;
77 //文件名
78 string filename = tmpfilename.Substring(tmpfilename.LastIndexOf("\\") + 1);
79
80 //原文件的保存路径
81 string fileSavePath = uploadpath + "\\" + filename;
82
83 //保存原图片
84 myPost.SaveAs(fileSavePath);
85
86 //调用生成缩略图程序,生成缩略图及生成写字的图片
87 this.toImage(myPost.InputStream,uploadpath,filename);
88
89 //完成之后,重定向本页面,并带参数显示当前上传的图片
90 this.Response.Redirect("pic.aspx?filename=" + filename);
91 this.Response.End();
92 }
93 catch(Exception ex)
94 {
95 throw ex;
96 }
97 finally
98 {
99
100 }
101 }
102 }
103
104
105 /**//// <summary>
106 /// 生成缩略图程序
107 /// </summary>
108 /// <param name="myStream">取到的流文件对象</param>
109 /// <param name="uploadPath">要保存的路径</param>
110 /// <param name="picName">上传的图片原文件名</param>
111 private void toImage(System.IO.Stream myStream,string uploadPath,string picName)
112 {
113 //取得后缀名
114 string suffix = picName.Substring(picName.LastIndexOf("."));
115
116 //缩略图的保存路径
117 string fileXltPath = uploadPath + "\\" + picName.Replace(suffix,"x" + suffix);
118 //写字图的保存路径
119 string fileXztPath = uploadPath + "\\" + picName.Replace(suffix,"w" + suffix);
120
121
122 //创建一个图像对象取得上传图片对象
123 System.Drawing.Image myImage = System.Drawing.Image.FromStream(myStream,false);
124 //对绘制前的图片产生一个缩略图(原图片一半大小)
125 System.Drawing.Image thumbImage = myImage.GetThumbnailImage(myImage.Size.Width/2,myImage.Size.Height/2,null,System.IntPtr.Zero);
126 //保存缩略图
127 thumbImage.Save(fileXltPath,this.getImageFormat(suffix));
128 //关闭缩略图对象
129 thumbImage.Dispose();
130
131 //创建绘制对象
132 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(myImage);
133 g.DrawImage(myImage,0,0,myImage.Size.Width,myImage.Size.Height);
134 //选择字体及字体大小
135 System.Drawing.Font f = new Font("隶书",140);
136 //定义字体颜色
137 System.Drawing.Brush b = new SolidBrush(System.Drawing.Color.Red);
138 //开始绘制,根据上述两种设定,添加绘制的上左位置
139 g.DrawString("好好学习,天天向上",f,b,10,10);
140 //关闭绘制对象
141 g.Dispose();
142
144 myImage.Save(fileXztPath,myImage.RawFormat);
145 //关闭图片对象
146 myImage.Dispose();
147 }
148
149 /**//// <summary>
150 /// 根据图片的后缀名,返回要保存的图片格式
151 /// </summary>
152 /// <param name="suffix">带.号的后缀名</param>
153 /// <returns>返回System.Drawing.Imaging.ImageForma对象</returns>
154 private System.Drawing.Imaging.ImageFormat getImageFormat(string suffix)
155 {
156 System.Drawing.Imaging.ImageFormat myFormat;
157 switch(suffix.ToLower())
158 {
159 case ".bmp":
160 myFormat = System.Drawing.Imaging.ImageFormat.Bmp;
161 break;
162 case ".emf":
163 myFormat = System.Drawing.Imaging.ImageFormat.Emf;
164 break;
165 case ".exif":
166 myFormat = System.Drawing.Imaging.ImageFormat.Exif;
167 break;
168 case ".gif":
169 myFormat = System.Drawing.Imaging.ImageFormat.Gif;
170 break;
171 case ".icon":
172 myFormat = System.Drawing.Imaging.ImageFormat.Icon;
173 break;
174 case ".jpeg":
175 case ".jpg":
176 myFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
177 break;
178 case ".png":
179 myFormat = System.Drawing.Imaging.ImageFormat.Png;
180 break;
181 case ".tiff":
182 myFormat = System.Drawing.Imaging.ImageFormat.Tiff;
183 break;
184 case ".wmf":
185 myFormat = System.Drawing.Imaging.ImageFormat.Wmf;
186 break;
187 default:
188 myFormat = System.Drawing.Imaging.ImageFormat.MemoryBmp;
189 break;
190 }
191 return(myFormat);
192 }
193
194
195 Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
196 override protected void OnInit(EventArgs e)
197 {
198 //
199 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
200 //
201 InitializeComponent();
202 base.OnInit(e);
203 }
204
205 /**//// <summary>
206 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
207 /// 此方法的内容。
208 /// </summary>
209 private void InitializeComponent()
210 {
211 this.Button1.Click += new System.EventHandler(this.Button1_Click);
212 this.Load += new System.EventHandler(this.Page_Load);
213
214 }
215 #endregion
216 }