我用C#做一个WEB应用程序来上传图片。在WebForm中加了一个File Field的HTML控件并设其ID为"PersonImage"。然后我想在这个WebForm的代码页中引用这个File Field的ID。请问可以引用吗?
如果可以,要如何引用?谢谢!

解决方案 »

  1.   

    在ASP.NET中实现多文件上传 
    http://sz.luohuedu.net/xml/ShowDetail.asp?id=58EA3515-36F2-4FD9-AC89-EAF49F59816C向SQL Server数据库添加图片 
    http://sz.luohuedu.net/xml/ShowDetail.asp?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506
      

  2.   

    谢谢你的帮助。
    对于你给我第二篇文章,我看过,也去做过,我是用C#在VS.NET 2003中做的,可是不行。
    我不知道里面的"PersonImage"是如何引用进去的?
    还有就是,是不是只有在同一个页面才可以用呢?
      

  3.   

    将那个控件设置为在服务器端运行
    if(postfilepicture.PostedFile.FileName!="" && share.Filestyle(postfilepicture.PostedFile.FileName,Page))
    {
    Stream sr=postfilepicture.PostedFile.InputStream;
    byte[] file=new byte[sr.Length];
    sr.Read(file,0,file.Length);
    Random r=new Random();
    TmpString=share.Getfilename(System.Web.HttpContext.Current.Request.MapPath("../")+@"engage_type\awardpicture\"+var.CardID+@"\"+share.RandChars()+"_"+System.IO.Path.GetFileName( postfilepicture.PostedFile.FileName).ToString());
    StreamWriter sw=new StreamWriter(TmpString);
    sw.BaseStream.Write(file,0,file.Length);
    sw.Flush();
    sw.Close();
    sr.Flush();
    sr.Close();
    }/// <summary>
    /// 判断指定的路径是否有相同的文件名,如果有则返回新的文件名,如果没有则返回原来的值
    /// </summary>
    /// <param name="path">包含文件名的路径</param>
    /// <returns></returns>
    public string Getfilename(string path)
    {
    string filename;
    Random r=new Random();
    a:
    filename=System.IO.Path.GetDirectoryName(path)+ "\\"+ r.Next().ToString() + "_" + System.IO.Path.GetFileName(path);
    if(existsfile(filename))
    {
    goto a;
    }
    return filename;
    }
    private bool existsfile(string path)///返回指定的路径是否有相同名称 的文件,如果有则给文件另外起一个名字。反回真是为有,假时为没有
    {
    bool k=false;
    if(System.IO.File.Exists(path))
    {
    k=true;
    }
    return k;
    }

    /// <summary>
    ///  判断文件类型是否为图片返回真表示是图片
    /// </summary>
    /// <param name="file">包含路径的文件信息</param>
    /// <returns></returns>
    public bool Filestyle(string file,Page page)
    {
    bool k=false;
    string exe=System.IO.Path.GetExtension(file).ToLower();
    switch(exe)
    {
    case ".gif":
    case ".jpg":
    case ".bmp":
    k=true;
    break;
    default:
    Share share=new Share();
    share.Msg("picture","picture",page);
    break;
    }
    return k;
      

  4.   

    给我看看这个 
    <asp:TableRow>
    <asp:TableCell HorizontalAlign="Right">
    <asp:Label Font-Name="verdana" Font-size="12px" Runat="server" Text="Image" ID="Label6" />
    </asp:TableCell>
    <asp:TableCell>
    <input type="file" id="PersonImage" runat="server" NAME="PersonImage" /></asp:TableCell>
    </asp:TableRow> 
    我要在代码页中用这个 File Filed 的ID 可以吗?
    比如我要用它来操作下面的步骤:
    string strImageType=PersonImage.PostedFile.FileName.........
    要如何实现呀,谢谢。
      

  5.   

    hbtm(Codeing...) 你好,
    请问,你代码中的“postfilepicture”是前台File Field 的ID吗?
      

  6.   

    不行啊,我就是这里不能用。晕了
    我也觉得可以直接用的,可是就是我的不能用呀
    会不会跟版本有关系呀,我用的是VS.NET 2003的。
      

  7.   

    呵呵,解决了,我忘了加下面这一句了:
    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.HtmlControls.HtmlInputFile PersonImage;//就是少加了这一句
             .......
             }
    谢谢你!!
      

  8.   

    protected System.Web.UI.HtmlControls.HtmlInputFile PersonImage;//就是少加了这一句
    少了这一句,你自己加上即可.
    另外,你的上传控件框里面有没有这一句:runat="server"如果没有也加上.