已知要上传文件的位置,请问有什么方法可以上传
如:已知要上传D:\image 下的所有图像
请问我应该如何上传这些文件到服务器上呢?
我尝试用 
FileUpload f=new FileUpload()
然后我发现 f.FileName 等属性都是只读的,不能负值请问我应该如何做才能上传文件夹内的所有文件呢?

解决方案 »

  1.   


    if (FileUpload_LOGO.PostedFile.FileName.Length > 2)
            {
                string fullfilename = this.FileUpload_LOGO.PostedFile.FileName;
                string type1 = fullfilename.Substring(fullfilename.LastIndexOf("."));
                string dt = DateTime.Now.ToString().Trim().Replace("-", "").Replace(":", "").Replace(" ", "");
                string filename = dt.ToString() + type1.ToString();
                string lujing = Server.MapPath("UpLoad_IMG") + "\\" + filename;
                FileUpload_LOGO.PostedFile.SaveAs(lujing);//这就是保存,我没存数据库
                 //你可以在这里把filename  存入数据库
                if (_shop.ADD_Shop_LOGO(Request.QueryString["ID"], filename))
                {
                    IMG_LOGO.ImageUrl = "~/UpLoad_IMG/" + filename;
                    ClientScript.RegisterStartupScript(this.GetType(), "error", "<script>alert('商家LOGO上传成功');</script>");
                }
                else
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "error", "<script>alert('商家LOGO上传失败');</script>");
                }
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "error", "<script>alert('上传路径不能为空');</script>");
            }
      

  2.   

    asp.net一般用fileupload控件。然后我发现 f.FileName 等属性都是只读的,不能负值; 它只读是因为当你选择一个文件以后,该控件自动帮你加了filename.
      

  3.   

      protected void Save_Button_Click(object sender, EventArgs e)
        {        //处理文件上传
            if (IsPostBack)
            {
                Boolean fileOK = false;
                String path = Server.MapPath("~/after_service/upload/");//服务器相对路径
                if (Accessory.HasFile)
                {
                    Accessory.PostedFile.SaveAs(path
                       + Accessory.FileName);            }
            }
      

  4.   

    大家可能不懂我的意思,我是不想在页面上添加uploadfile控件,直接通过已知的要上传文件的本地路径,通过后台代码上传
      

  5.   

    ls几位估计都偏了如果是服务器--》服务器直接移动文件就是何必fileupload如果是客户端-》服务器,在不降安全的条件下,很难完成。js的确可以使用fso遍历客户端目录,但是这个需要权限ps:这样的东西最好去找了activex的ftp控件,应该能比较容易完成
      

  6.   

    private string SaveImage()//写的一个上传的函数
        {
            if (this.uploadImage.HasFile)
            {
                string[] Extension = new string[] { ".jpg", ".gif", ".jpeg" };
                string CurrentExt = Path.GetExtension(this.uploadImage.PostedFile.FileName);
                bool Validate = false;
                for (int i = 0; i < Extension.Length; i++)
                {
                    if (Extension[i].ToUpper() == CurrentExt.ToUpper())
                    {
                        Validate = true;
                        break;
                    }
                }            if (Validate == false)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "ValidateExt", "<script>alert('只能上传.jpg,.gif,.jpeg格式的文件!')</script>");
                    return "0";
                }            Result = "pic/" + Guid.NewGuid().ToString() + CurrentExt;//pic为保存图片的文件夹
    //文件保存的路径Guid.NewGuid().ToString()是生成随机的文件名,避免了图片名称的重复
                this.uploadImage.SaveAs(Server.MapPath("~") + "\\" +Result);//上传
            }在button事件中调用就可以了。
        }
      

  7.   

    选择文件:<asp:FileUpload ID="FileUpload1" runat="server" />
                                    <asp:Button ID="Button1" runat="server" Text=" 上传 " Height="22px"  OnClick="Button1_Click" CssClass="btn" />   using System.IO;
    using System.Text; 
    protected void Button1_Click(object sender, EventArgs e)
        {
            string name = FileUpload1.FileName;
            string size = FileUpload1.PostedFile.ContentLength.ToString();
            string type = FileUpload1.PostedFile.ContentType;        string FolderName = DateTime.Now.ToString("yyyyMMdd");
            string extension = name.Substring(name.LastIndexOf("."));//jpg
            string ipath = Server.MapPath("upimg") + FolderName + "/";        #region 上传大小限制
            if (FileSize != 0)
            {
                if (FilePicName.PostedFile.ContentLength > FileSize * 1024)
                {
                    HttpContext.Current.Response.Write("<script>alert('上传图片大小超出了限制');window.close();</script>");
                    HttpContext.Current.Response.End();
                }
            }
            #endregion        #region 上传文件类型判断
            //文件格式
            string fileType = "image/gif,image/pjpeg,image/bmp,image/x-png,image/jpeg,image/jpg,application/x-shockwave-flash,application/vnd.ms-excel,application/msword,application/vnd.ms-powerpoint,application/octet-stream,application/x-zip-compressed,pplication/vnd.rn-realmedia,application/vnd.rn-realmedia-vbr,video/x-ms-wmv,audio/x-ms-wma,video/x-ms-asf,video/avi,audio/mp3,video/mpeg4,video/mpg,audio/mid,video/avi,application/x-rar-compressed,application/x-zip-compressed";
            //图片格式
            string imgType = "image/gif,image/pjpeg,image/bmp,image/x-png,image/jpeg,image/jpg";
            bool flag = false;
            string[] fileTypeArr = fileType.Split(',');
            for (int i = 0; i < fileTypeArr.Length;i++ )
            {
                if(type==fileTypeArr[i])
                {
                    flag = true;
                    return;
                }
            }
            if (!flag)
            {
                HttpContext.Current.Response.Write("<script>alert('上传文件格式不正确!');window.close();</script>");
                HttpContext.Current.Response.End();
                return "";
            }
            #endregion
            string sName = GetFileName();
            if(!(Directory.Exists(ipath)))
            {
                Directory.CreateDirectory(ipath);
            }        string picPath = ipath + sName+extension;        FileUpload1.PostedFile.SaveAs(picPath);
                 
        }
        protected string GetFileName()
        {
            Random rd = new Random();
            StringBuilder sb = new StringBuilder();
            sb.Append(DateTime.Now.ToString("yyyyMMddHHmmss"));
            sb.Append(rd.Next(100000, 999999).ToString());
            return sb.ToString();
        }