我有一個由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去時,我有時會被要求認證,即使我以前登錄過。
收到以下錯誤:未設置爲一個對象的實例 對象引用。在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
第三柱在該線程顯示了一些戲劇與文件夾(http://www.uploadify.com/forum/viewtopic.php?f=5&t=45#p1909)。這會引發異常,或者文件沒有到達服務器 - 你能檢查哪一個? – 2009-08-25 13:55:21
我嘗試了第二批代碼,仍然沒有運氣。調試不夠遠。爲什麼事情不簡單。 – Jack 2009-08-25 14:08:06