2009-08-25 78 views
4

我有一個由jQuery在共享點頁面上生成的html。我想在這個html中使用uploadify將文件上傳到服務器。 Alexander通過提供以下部分基於http://www.uploadify.com/forum/viewtopic.php?f=5&t=45的示例代碼提供了幫助。使用Uploadify與Sharepoint和.net

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" %> 

upload.ashx.cs

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

文件不會上傳到服務器。唯一引發的事件是onProgress。瀏覽到_layouts/other/Upload.ashx會返回0(這是正確的),所以文件就在那裏。

主要問題是我該如何得到這個共享點?我嘗試遠程調試upload.ashx文件,但它不允許我在VS中添加斷點,所以遠程調試什麼也不做。

更新1

這個問題Visual Studio ASHX files debugging了調試工作。

當我直接導航到頁面0寫入頁面。調試器觸發,一切都很好。當腳本運行時,它不會觸及Upload.ashx,因爲沒有命中斷點。我想我對Upload.ashx的引用是不正確的。我試着用在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

收到以下錯誤:未設置爲一個對象的實例 對象引用。在Upload.ProcessRequest(HttpContext的上下文) 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾邏輯completedSynchronously) – Jack 2009-08-25 13:42:55

+0

第三柱在該線程顯示了一些戲劇與文件夾(http://www.uploadify.com/forum/viewtopic.php?f=5&t=45#p1909)。這會引發異常,或者文件沒有​​到達服務器 - 你能檢查哪一個? – 2009-08-25 13:55:21

+0

我嘗試了第二批代碼,仍然沒有運氣。調試不夠遠。爲什麼事情不簡單。 – Jack 2009-08-25 14:08:06