2009-08-25 10 views
4

공유 지점 페이지에서 JQuery에 의해 생성되는 html이 있습니다. 이 html로 uploadify를 사용하여 파일을 서버에 업로드하고 싶습니다. Alexander은 부분적으로는 http://www.uploadify.com/forum/viewtopic.php?f=5&t=45을 기반으로하는 다음 샘플 코드를 제공함으로써 도움을주었습니다.Sharepoint 및 .net과 함께 Uploadify 사용

public class Upload : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) { 
    HttpPostedFile oFile = context.Request.Files["Filedata"]; 

    if (oFile != null) { 
    const string sDirectory = "c:\\"; 
    if (!Directory.Exists(sDirectory)) 
    Directory.CreateDirectory(sDirectory); 

    oFile.SaveAs(Path.Combine(sDirectory, oFile.FileName)); 

    context.Response.Write("1"); 
     } 
     else { 
      context.Response.Write("0"); 
     } 
    } 
    public bool IsReusable { 
     get { 
      return false; 
     } 
    } 
} 

파일 upload.ashx.cs upload.ashx는

<%@ Assembly Name="ClassName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f099e668beaaa0f9" %> 
<%@ WebHandler Language="C#" CodeBehind="Upload.ashx.cs" Class="Site.RootFiles.TEMPLATE.LAYOUTS.other.Upload" %> 

서버에 업로드되지 않습니다. throw되는 유일한 이벤트는 onProgress 이벤트입니다. _layouts/other/Upload.ashx로 이동하면 0이 반환되고 (올바른) 파일이 있습니다.

주된 질문은 어떻게 이것을 공유 지점으로 재생할 수 있습니까? 내가 원격 upload.ashx 파일을 디버깅하려고하지만 그것은 원격 디버깅이 아무것도하지 않도록 내가 VS에 중단 점을 추가 할 수 없습니다.

업데이트 1

이 질문에 Visual Studio ASHX files debugging는 작업을 디버깅 얻었다.

페이지로 직접 이동하면 페이지에 0이 기록됩니다. 디버거가 실행되고 모든 것이 좋습니다. 스크립트가 실행될 때 아무런 중단 점에도 도달하지 않으므로 Upload.ashx를 누르지 않습니다. Upload.ashx에 대한 언급이 잘못되었다고 생각합니다. 나는 문제를 테스트 일부는 (I가 로그인하고 다시 공유 포인트에 로그인하라고 요청하는 것 같다 후 JS와 여전히 기쁨 http://mysite/_layouts/other/Upload.ashx ...

업데이트 2

를 사용하여 시도). 이로 인해 여행이 시작됩니다. 내 생각이 어떻게 받아 들여 지는지 모든 아이디어가 필요합니까?

업데이트 3

이 정말 이상하다. IE8에서 팀 메이트와 같이 작동하는 설정이라고 말할 수 있습니다.

나는 직접 /_layouts/other/Upload.ashx를 탐색 할 때 결코 인증을 요청받지 않습니다. JS를 통해 갈 때 나는 전에 로그인 했는데도 때로는 인증을 요청받습니다.

답변

1

페이지에 업로드하지 않고 http handler으로 업로드하십시오. 붙여 넣은 코드를 포럼 게시물에 명시된대로 upload.ashx에 추가해야합니다. 그런 다음 클라이언트에서이 같은 uploadify 사용

$("#fileInput1").uploadify ({ script: 'upload.ashx' }); 
+0

을 다음과 같은 오류지고 : 개체의 인스턴스로 설정되지 않았습니다 Object 참조. System.Web.HttpApplication.ExecuteStep 때의 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()에서 Upload.ProcessRequest (HttpContext를 컨텍스트) (IExecutionStep 단계, 및 부울 completedSynchronously) – Jack

+0

번째 게시물에 스레드는 폴더 (http://www.uploadify.com/forum/viewtopic.php?f=5&t=45#p1909)와 몇 가지 드라마를 보여줍니다. 어느 쪽이 예외를 던지거나 파일이 서버에 도착하지 않습니다 - 어느 것을 확인할 수 있습니까? –

+0

두 번째 코드를 시도했지만 여전히 운이 없었습니다. 디버깅으로 멀지 않습니다. 왜 사물은 결코 단순하지 않습니다. – Jack