我写了一个论坛,现在想加上上传图片的功能,我想把用户上传的图片放以一个特定的文件夹中,
怎么用.NET实现,高手说说基本思路吧!我有很多分

解决方案 »

  1.   

    <INPUT type="file" id="File1" runat="server">
    ...
    protected System.Web.UI.HtmlControls.HtmlInputFile File1;
    ....
    File1.PostedFile.SaveAs(路径)
    ....
      

  2.   

    前台:
    <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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:Button id="Button1" runat="server" Text="上传"></asp:Button>&nbsp;&nbsp;<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();
    }
    }
    }
    }
      

  3.   

    FORM结构要注意:
    <form id="Form1" method="post" enctype="multipart/form-data" runat="server">
      

  4.   

    //上传图片并修改大小
    //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"));