2017-09-12 114 views
1

IAM試圖handdle用下面這段代碼上傳的文件,但我得到這個錯誤Request參考需要我曾嘗試使用system.web.httprequest處理Ajax FORMDATA

[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); 
       } 

      } 
+5

添加[使用MVC 4和Ajax進行文件上傳]的可能的副本(https://stackoverflow.com/questions/20420828/file-upload-using-mvc-4-with-ajax) – Isma

回答

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")); 
         } 

        } 
       } 
      } 
     }