这控件没用过,谁有示例学习下吗,现在要用
主要是做一个图片上传的功能

解决方案 »

  1.   

    很简单FileUpload1.PostedFile.SaveAs(path);
      

  2.   

    HttpPostedFile post = this.FileUpload1.PostedFile;
        //获取文件完整路径,如一张图片的完整路径:  E:\Image\程序效果用图\In03.jpg
        string filePath = post.FileName;
        if (filePath == "")
        {
            Response.Write("<script language=javascript>alert('请选择上传的照片!');location.href = location.href;</script>");
            return;
        }
        //截取文件名: 从 ( 反斜杠+1的 位置 ) 开始截取!获取文件名, 如: In03.jpg
        string fileName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
        //返回一个物理路径:用以将客户端文件保存到 Web服务器的images文件夹中
        string s = Server.MapPath("images\\photo\\"+ "\\" + fileName);
        //保存到 Web服务器指定路径
        FileUpload1.SaveAs(s);
        //也可以一步到位
        //FileUpload1.SaveAs(Server.MapPath(""));
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["blog"].ToString());
        conn.Open();
        SqlCommand cmd = new SqlCommand("insert into image(imageurl,name,time,type) values('" + "images\\photo\\" + fileName + "','" + TextBox1.Text + "','" + DateTime.Now.ToString() + "','" + DropDownList1.SelectedValue.ToString() + "')", conn);
        if (cmd.ExecuteNonQuery() > 0)
        {
            Response.Write("<script language=javascript>alert('相片上传成功!');location.href = location.href;</script>");
        }
        else
        {
            Response.Write("<script language=javascript>alert('相片上传失败!');location.href = location.href;</script>");
        }
        conn.Close();
      

  3.   


    http://topic.csdn.net/u/20101013/15/12d1f254-ff5e-4449-bb33-484fa45b5504.html

    可以去看看这个帖子、我回过详细方法了、呵呵
      

  4.   

     /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpLoad1_Click(object sender, EventArgs e)
        {
            //判断是否还有上传文件
            if (FileUpload1.HasFile)
            {
                //获得上传文件的类型
                string FileType = FileUpload1.PostedFile.ContentType;            //上传文件类型的过滤
                if (FileType == "image/bmp" || FileType == "image/gif" || FileType == "image/pjpeg")
                {
                    //获得上传文件的名称
                    string FileName = FileUpload1.PostedFile.FileName;                FileInfo file = new FileInfo(FileName);
                    // 文件名称
                    string fileName = file.Name;
                    //文件上传的路径
                    webFilePath_sPath2 = "../Files/image/" + fileName;
                    string webFilePath = Server.MapPath("~/Files/image/" + fileName); // 服务器端文件路径
                    if (!File.Exists(webFilePath))
                    {
                        try
                        {
                            if (!File.Exists(webFilePath))
                            {
                                //使用SaveAs保存文件
                                FileUpload1.SaveAs(webFilePath);
                                lblWaring.Text = "提示:图片" + fileName + "已成功上传!!!";
                                Image1.ImageUrl = webFilePath_sPath2;
                            }
                            else
                            {
                                lblWaring.Text = "提示:图片已经存在,请重命名后上传";
                            }
                        }
                        catch (Exception ex)
                        {
                            lblWaring.Text = "提示:图片上传失败,失败原因:" + ex.Message;
                        }
                    }
                    else
                    {
                        lblWaring.Text = "提示:图片已经存在,请重命名后上传";                }
                }
                else
                {
                    lblWaring.Text = "提示:图片类型不符";
                }
            }
        }
      

  5.   

    为什么我的这一句话得到的是空哦
    HttpPostedFile post = this.FileUpload1.PostedFile;
    这样取也是空值
    string filePath = this.FileUpload1.PostedFile.FileName;
      

  6.   

    未能找到路径“E:\MiSha工作\TianAiYuan\WEB-UI\images\QQ截图未命名1.png”的一部分。保存的那个路径是要原本就存在的吗
    如果我想把名字改下就只要把那个filePath 改掉就行了吧,文件应该是没变的吧
      

  7.   

    完全使用手册http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.fileupload.aspx
      

  8.   

    FileUpload1打点后有中文介绍,lz试试就知道了...
    很简单的..
      

  9.   

    使用FileUpLoad包进行文件上传。
    进行文件上传一般有三种方式
    使用fileUpLoad
    使用smartFileUpLoad
    自己编写类似的程序进行解析
    下面介绍一下第一种方式的使用方法:
    fileUpLoad是apache的一个开源项目,用来进行解析带有文件的请求处理。著名的struts的FormFile就是用的它进行解析处理的。
    1首先页面上我们需要将表单设置下面类似的参数:
    < form method="post" enctype="multipart/form-data" action=”………… ” >
    2 然后我们需要在工程里导入所需要的包,可以在apache网站上下载:
    http://jakarta.apache.org/commons/fileupload/
    3 在我们的servlet中可以获取到request参数,然后可以这样取传递过来的字段参数及文件参数:
    在这里我写了两个类去生成并存储字段和文件的值:
    可以跟着红色的注释代码看一下实现的过程
    /**
    *@authorsxy 

    *封装了FileUpload类,实现文件上传功能 

    */ 
    publicclass FileUploadUtil { 
    privatestatic Logger logger = Logger.getLogger(FileUploadUtil.class); 
    public HttpServletRequest request; 
    //这个是FileUpLoad控件的实际处理的request数据的类对象 
    DiskFileUpload fu; 
    //用来存储解析后的字段和文件数据 
    List fileItems; 
    //字段名与字段值的映射 String--Vector 
    HashMap fieldsMap=new HashMap(); 
    //字段名与相对UploadedFile的映射 
    HashMap filesMap=new HashMap(); 
    /**构造函数,遍历所有字段,分别存入文件MAP和字段MAP 
    *@paramrequest 
    *@paramtempDirectory 
    *@throwsBaseWebException 
    */ 
    //当生成一个类时就开始了对request传递过来的数据的解析 
    public FileUploadUtil(HttpServletRequest request,String tempDirectory) throws Exception { 
    this.request = request; 
    //这一句很重要,以前我没有加上,结果UTF-8编码时老是出现乱码问题,最后还是看了Struts的文件上传源代码是这样写的,才解决了乱码问题 
    String encoding=request.getCharacterEncoding();
    fu = new DiskFileUpload(); 
    fu.setSizeMax(44194304); //设置文件大小. 
    fu.setSizeThreshold(4096); 
    fu.setHeaderEncoding(encoding); 
    fu.setRepositoryPath(tempDirectory); //设置临时目录. 
    try { 
    //解析参数,在后面进行文件字段和普通字段值的进一步处理 
    fileItems = fu.parseRequest(request); //解析请求,返回一个集合. 

    catch (FileUploadException e) { 
    thrownew Exception(e); 
    }
    Iterator i = fileItems.iterator(); 
    //遍历解析好的参数,以区分文件还是普通字段,并作相应的处理(存入不同的hashMap) 
    while(i.hasNext()) 
    {
    FileItem fi = (FileItem)i.next();
    //判断当前项是否为普通字段 
    if(fi.isFormField()) //这是用来确定是否为文件属性, 
    {
    Vector vec=new Vector(); 
    //需改正 
    String fieldName = fi.getFieldName(); //这里取得字段名称 
    //如果已经存在此字段信息(多选列表或多个同名的隐藏域等) 
    if(fieldsMap.get(fieldName)!=null) 
    {
    vec=(Vector)fieldsMap.get(fieldName); 
    logger.info("value: fi.getString(request.getCharacterEncoding())); 
    //很重要!需要进行编码哦!!! 
    vec.add(fi.getString(request.getCharacterEncoding()));
    }
    //第一次取到这个名的字段 
    else 
    {
    logger.info("value: "+fi.getString(request.getCharacterEncoding())); 
    vec.add(fi.getString(request.getCharacterEncoding()));
    fieldsMap.put(fieldName,vec); 
    }
    }
    //为文件字段时 
    else 
    {
    //传来的文件名不为空时 
    String fullName=fi.getName();
    if(fullName!=null&&!("".equals(fullName))) 
    {
    //这里是一个封装好的类型,封装的不太好,其中的getRealName()不//好用,但是获取扩展名和文件名的方法还是可以的。 
    UploadedFile uploadedFile=new UploadedFile(fi); 
    filesMap.put(fi.getFieldName(),uploadedFile); 
    }
    }
    }
    }// FileUploadUtil 
    /** 
    *模仿request的getParameter方法,取得非文件的字段 
    *如果为多个值的,只返回第一个 
    *@paramparam 
    *@return为空或键值不存在返回null 
    */ 
    public String getParameter(String param) 
    {
    if(param==null) 
    {
    returnnull; 
    }
    else 
    {
    Vector vec=(Vector)fieldsMap.get(param); 
    if(vec!=null&&vec.size()>0) 
    {
    return (String)vec.get(0); 
    }
    elsereturnnull; 
    }
    }//getParameter 
    public String[] getParameterValues(String param) 
    {
    String[] values=null; 
    if(param==null) 
    {
    returnnull; 
    }
    else 
    {
    Vector vec=(Vector)this.fieldsMap.get(param); 
    int size=vec.size(); 
    values=new String[size]; 
    if(vec!=null&&vec.size()>0) 
    {
    for(int i=0;i<size;i++) 
    {
    values[i]=(String)vec.get(i);
    }
    return values; 
    }
    else 
    {
    returnnull; 
    }
    }//else 
    }
    /** 

    *返回上传的文件的名称,如若没这个参数名,返回null 
    *@paramparamName 
    *@return 
    */ 
    public String getFileName(String paramName) 
    {
    if(paramName!=null) 
    {
    UploadedFile uploadedFile=(UploadedFile)this.filesMap.get(paramName); 
    if(uploadedFile!=null) 
    {
    return uploadedFile.getRealName(); 
    }
    }
    returnnull; 
    }
    /** 
    *这个方法用来将文件字段保存在硬盘上。 
    *@paramparamName 
    *@paramnewNameWithoutExt 
    *@paramrelativePath 
    *@throwsBaseWebException 
    */ 
    publicvoid upLoadFile(String paramName,String newNameWithoutExt,String relativePath) throws Exception 
    {
    if(paramName!=null) 
    {
    UploadedFile uploadedFile=(UploadedFile)this.filesMap.get(paramName); 
    if(uploadedFile!=null&&uploadedFile.fileItem.getSize()>0) 
    {
    String path=request.getSession().getServletContext().getRealPath("/"); 
    path+=relativePath+newNameWithoutExt;
    uploadedFile.write(path);
    }
    }
    }
    publicstaticvoid main(String[] args) 
    {
    }
    public List getFileItems() { 
    returnfileItems; 
    }
    publicvoid setFileItems(List fileItems) { 
    this.fileItems = fileItems; 
    }
    public HashMap getFieldsMap() { 
    returnfieldsMap; 
    }
    publicvoid setFieldsMap(HashMap fieldsMap) { 
    this.fieldsMap = fieldsMap; 
    }
    public HashMap getFilesMap() { 
    returnfilesMap; 
    }
    publicvoid setFilesMap(HashMap filesMap) { 
    this.filesMap = filesMap; 
    }
    public DiskFileUpload getFu() { 
    returnfu; 
    }
    publicvoid setFu(DiskFileUpload fu) { 
    this.fu = fu; 
    }
    public HttpServletRequest getRequest() { 
    returnrequest; 
    }
    publicvoid setRequest(HttpServletRequest request) { 
    this.request = request; 
    }
    }
    //辅助的文件封装字段,还很不完善,比如缺少获取文件流的方法,以后考虑创建adapter 
    //来实现封装对象fileItem的一些方法。这里主要提供了获取扩展名和文件名的方法,比较//简陋 
    publicclass UploadedFile { 
    private String fullName=""; 
    public FileItem fileItem; 
    /** 
    *@paramfileItem 
    */ 
    public UploadedFile(FileItem fileItem) { 
    this.fileItem = fileItem; 
    fullName=fileItem.getName(); 
    }
    public String getFileNameWithoutExt() 
    {
    returnnull; 
    }
    //返回文件的扩展名 
    public String getExt() 

    String[] values= fullName.split("\\."); 
    return values[values.length-1]; 
    }
    //不好用这个方法!! 
    public String getRealName() 
    {
    String[] values= fullName.split("\\\\\\"); 
    return values[values.length-1]; 
    }
    publicString getBaseFileName() { 
    // First, ask the JDK for the base file name. 
    String fileName = new File(this.fileItem.getName()).getName(); 
    // Now check for a Windows file name parsed incorrectly. 
    int colonIndex = fileName.indexOf(":"); 
    if (colonIndex == -1) { 
    // Check for a Windows SMB file path. 
    colonIndex = fileName.indexOf("\\\\"); 
    }
    int backslashIndex = fileName.lastIndexOf("\\"); 
    if (colonIndex > -1 && backslashIndex > -1) { 
    // Consider this filename to be a full Windows path, and parse it 
    // accordingly to retrieve just the base file name. 
    fileName = fileName.substring(backslashIndex + 1);
    }
    return fileName; 
    }
    publicvoid write(String path) throws Exception 
    {
    try { 
    fileItem.write(new File(path)); 
    } catch (Exception e) { 
    thrownew Exception(e); 

    }
    }
    使用方法就是分的简单了:
    FileUploadUtil fu;
    fu = new FileUploadUtil(request,"c:/");
    String name=fu.getParameter("name");
    logger.info("字段名; name ,值:"+name);
    Map fileMap=fu.getFilesMap();
    UploadedFile ufile=(UploadedFile) fileMap.get("myFile");
      

  10.   

    this.FileUpload1.PostedFile;
    单个文件下就执行但是,整合在模块里面了就说这个为空