如何在论坛里上传图片??? 我写了一个论坛,现在想加上上传图片的功能,我想把用户上传的图片放以一个特定的文件夹中,怎么用.NET实现,高手说说基本思路吧!我有很多分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <INPUT type="file" id="File1" runat="server">...protected System.Web.UI.HtmlControls.HtmlInputFile File1;....File1.PostedFile.SaveAs(路径).... 前台:<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" cellSpacing="1" cellPadding="1" width="300" border="0"> <TR> <TD> <input type="file" Id="textbox1" runat="server" NAME="textbox1"></TD> </TR> <TR> <TD> <asp:Button id="Button1" runat="server" Text="上传"></asp:Button> <input type="reset" runat="server" value="重置" ID="Reset1" NAME="Reset1"></TD> </TR> </TABLE>后台:using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace jiukashenjie.manage{ /// <summary> /// upload 的摘要说明。 /// </summary> public class upload : System.Web.UI.Page { protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.HtmlControls.HtmlInputFile textbox1; protected System.Web.UI.HtmlControls.HtmlInputButton Reset1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Button1_Click(object sender, System.EventArgs e) { try { if(textbox1.PostedFile!=null) { string pic=textbox1.PostedFile.FileName; int i=pic.LastIndexOf("."); string LastName=pic.Substring(i); DateTime now = DateTime.Now; Random r=new Random(); ///判断是否Word文件 if(LastName.ToLower()!=".jpg" && LastName.ToLower()!=".gif" && LastName.ToLower()!=".png") { Response.Write("<script>alert('系统不允许您上传的文件类型,请重新上传!');history.back();</script>"); Response.End(); } string newpicname=now.Year.ToString()+now.Month.ToString()+now.Day.ToString()+now.Hour.ToString()+now.Minute.ToString()+now.Second.ToString()+r.Next(1,10000)+LastName.ToString(); textbox1.PostedFile.SaveAs(Server.MapPath("pic//"+newpicname)); if(Request.QueryString["abc"]=="abc") { Response.Write("<script>opener.document.Form1.logo2.value='"+newpicname+"';window.close();</script>"); } else { Response.Write("<script>opener.document.Form1.pic.value='"+newpicname+"';window.close();</script>"); } } } catch { Response.Write("<script>alert('上传错误,请重新上传!');history.back();</script>"); Response.End(); } } }} FORM结构要注意:<form id="Form1" method="post" enctype="multipart/form-data" runat="server"> //上传图片并修改大小//thefile是一个File Field HTML 控件thefile.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("temp.png"));MemoryStream MemStream=new MemoryStream();System.Drawing.Image imgOutput =System.Drawing.Bitmap.FromFile(System.Web.HttpContext.Current.Server.MapPath("temp.png"));System.Drawing.Image imgOutput2=imgOutput.GetThumbnailImage(80,80,null,IntPtr.Zero);imgOutput2.Save(System.Web.HttpContext.Current.Server.MapPath("image.png"), ImageFormat.Png);//imgOutput2.Save(MemStream,ImageFormat.Png);//System.Drawing.Image tempImg=System.Drawing.Image.FromStream(MemStream);//if (File.Exists(System.Web.HttpContext.Current.Server.MapPath("image.png")))//{// File.Delete(System.Web.HttpContext.Current.Server.MapPath("image.png"));//}//tempImg.Save(System.Web.HttpContext.Current.Server.MapPath("image.png"), ImageFormat.Png);Response.Write(thefile.PostedFile.FileName);Response.Write("Len:"+MemStream.Length.ToString());//MemStream.Close();imgOutput.Dispose();imgOutput2.Dispose();//tempImg.Dispose();Response.Write("上传成功!");Response.Write(System.Web.HttpContext.Current.Server.MapPath("image.png")); WCF----ServiceHost数组创建 GeckoWebBrowser控件的详解 关键字高亮显示问题 请教下各位dev中chartControl控件饼状图的用法 如何远程获取html源码,不从缓存中读取? 如何实现两个窗口粘在一起 如何初始化所有派生类 vs2005无法显示登录图片 人手不够,欢迎精通VB、熟练C#优秀人士加盟,有要跳槽的过来看看。上海。 我刚刚学c#,我想知道在c#里面有没有消息映射阿,如果有的话该是怎么实现呢 WinForm问题 ShowDialog方法出现错误 请 将web的DataGird导到Excel 的有经验的人回答
...
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
....
File1.PostedFile.SaveAs(路径)
....
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" cellSpacing="1"
cellPadding="1" width="300" border="0">
<TR>
<TD>
<input type="file" Id="textbox1" runat="server" NAME="textbox1"></TD>
</TR>
<TR>
<TD> <asp:Button id="Button1" runat="server" Text="上传"></asp:Button> <input type="reset" runat="server" value="重置" ID="Reset1" NAME="Reset1"></TD>
</TR>
</TABLE>
后台:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace jiukashenjie.manage
{
/// <summary>
/// upload 的摘要说明。
/// </summary>
public class upload : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.HtmlControls.HtmlInputFile textbox1;
protected System.Web.UI.HtmlControls.HtmlInputButton Reset1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
try
{
if(textbox1.PostedFile!=null)
{
string pic=textbox1.PostedFile.FileName;
int i=pic.LastIndexOf(".");
string LastName=pic.Substring(i);
DateTime now = DateTime.Now;
Random r=new Random();
///判断是否Word文件
if(LastName.ToLower()!=".jpg" && LastName.ToLower()!=".gif" && LastName.ToLower()!=".png")
{
Response.Write("<script>alert('系统不允许您上传的文件类型,请重新上传!');history.back();</script>");
Response.End();
}
string newpicname=now.Year.ToString()+now.Month.ToString()+now.Day.ToString()+now.Hour.ToString()+now.Minute.ToString()+now.Second.ToString()+r.Next(1,10000)+LastName.ToString();
textbox1.PostedFile.SaveAs(Server.MapPath("pic//"+newpicname));
if(Request.QueryString["abc"]=="abc")
{
Response.Write("<script>opener.document.Form1.logo2.value='"+newpicname+"';window.close();</script>");
}
else
{
Response.Write("<script>opener.document.Form1.pic.value='"+newpicname+"';window.close();</script>");
}
}
}
catch
{
Response.Write("<script>alert('上传错误,请重新上传!');history.back();</script>");
Response.End();
}
}
}
}
<form id="Form1" method="post" enctype="multipart/form-data" runat="server">
//thefile是一个File Field HTML 控件
thefile.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("temp.png"));
MemoryStream MemStream=new MemoryStream();
System.Drawing.Image imgOutput =System.Drawing.Bitmap.FromFile(System.Web.HttpContext.Current.Server.MapPath("temp.png"));
System.Drawing.Image imgOutput2=imgOutput.GetThumbnailImage(80,80,null,IntPtr.Zero);
imgOutput2.Save(System.Web.HttpContext.Current.Server.MapPath("image.png"), ImageFormat.Png);
//imgOutput2.Save(MemStream,ImageFormat.Png);
//System.Drawing.Image tempImg=System.Drawing.Image.FromStream(MemStream);
//if (File.Exists(System.Web.HttpContext.Current.Server.MapPath("image.png")))
//{
// File.Delete(System.Web.HttpContext.Current.Server.MapPath("image.png"));
//}
//tempImg.Save(System.Web.HttpContext.Current.Server.MapPath("image.png"), ImageFormat.Png);
Response.Write(thefile.PostedFile.FileName);
Response.Write("Len:"+MemStream.Length.ToString());
//MemStream.Close();
imgOutput.Dispose();
imgOutput2.Dispose();
//tempImg.Dispose();
Response.Write("上传成功!");
Response.Write(System.Web.HttpContext.Current.Server.MapPath("image.png"));