尝试在C#中处理AJAX FormData但是获取“请求”引用是必需的错误

时间:2017-09-12 10:02:20

标签: c# ajax

我正在尝试使用下面的代码处理上传的文件,但是我收到了Request引用所需的错误。我尝试添加对system.web.httprequest的引用,但这并没有解决问题。

这是我的方法:

 [System.Web.Services.WebMethod]

            public static string UploadFile(string ParentPath)
            {


                for (int i = 0; i <   Request.Files.Count; i++)
                {
                    var file = Requset.Files[i];

                    var fileName = Path.GetFileName(file.FileName);

                    var path = Path.Combine(Server.MapPath("~/Junk/"), fileName);
                    file.SaveAs(path);
                }

            }

1 个答案:

答案 0 :(得分:0)

使用handdler.ashx

 public void ProcessRequest(HttpContext content)
        {
            if (content.Request.Files.Count > 0)
            {

                HttpFileCollection files = content.Request.Files;
                for (int i = 0; i < files.Count; i++)
                {
                    HttpPostedFile file = files[i];
                    GSFileInfo fileInfo = new GSFileInfo();
                    using (MemoryStream streamCopy = new MemoryStream())
                    {
                        byte[] fileDataArr = null;
                        content.Request.Files[i].InputStream.CopyTo(streamCopy);
                        string parentPath = content.Request.Form["parentPathHidden"];

                        fileDataArr = streamCopy.ToArray();
                        var test = content.Request.Files[i];

                        string ServerPath = content.Server.MapPath("~/uploads/" + file.FileName);
                        bool read = streamCopy.CanRead;
                        bool write = streamCopy.CanWrite;

                        fileInfo.Name = file.FileName;
                        fileInfo.Path = file.FileName;
                        fileInfo.ParentPath = "root"; //  Need to Read Parent Path From the Request 

                        if (file.ContentType.Contains("image"))
                        {

                            fileInfo.Type = FileType.File;
                        }
                        else
                        {
                            fileInfo.Type = FileType.Folder;
                        }



                        fileInfo.Size = files[i].ContentLength;

                        fileInfo.MD5 = GetMD5(fileDataArr);
                        if (FilesBAL.InsertFile(fileInfo) == DALMessage.Success)
                        {
                            file.SaveAs(ServerPath);
                           content.Response.Write( Home.GetDataByParent("root"));
                        }

                    }
                }
            }
        }