2011-03-10 68 views
1

我使用uploadify工具上傳我的文件,但沒有發佈回來,我在發佈站點後面臨「IO錯誤」或「HTTP錯誤」問題。在asp.net中uploadify中的IO/HTTP錯誤mvc2

這是我的代碼示例:

$('#UploadFile').uploadify({ 

    'uploader': '/Content/uploadify.swf', 

    'script': '/Home/uploadify', 

    'cancelImg': '/Content/cancel.png', 

    'folder': '/Content/UploadedFiles', 

    'auto': true 

}); 

這是我的動作代碼

[HttpPost] 
public string uploadify() 
{ 
    string fileDirectory = Server.MapPath(@"\Content\UploadedFiles\"); 
    string signuterName = _fileStore.SaveUploadedFile(Request.Files[0], fileDirectory); 
    Session["SignuterfilePath"] = @"/Content/UploadedFiles/" + signuterName; 
    return signuterName; 
} 

http://www.uploadify.com/documentation/

感謝。

+0

我們還需要您的控制器和操作的代碼。 – ZippyV 2011-03-10 09:36:03

回答

1

您似乎有硬編碼的URL,在虛擬目錄下部署您的站點時可能會中斷。我會建議使用URL打交道時,你總是使用URL助手:

$('#UploadFile').uploadify({ 
    'uploader': '<%= Url.Content("~/Content/uploadify.swf") %>', 
    'script': '<%= Url.Action("Uploadify", "Home") %>', 
    'cancelImg': '<%= Url.Content("~/Content/cancel.png") %>', 
    'folder': '<%= Url.Content("~/Content/UploadedFiles") %>', 
    'auto': true 

}); 

UPDATE:

而且您的控制器操作正常返回ActionResults不是字符串:

[HttpPost] 
public ActionResult Uploadify() 
{ 
    // Notice the argument of the MapPath method: 
    string fileDirectory = Server.MapPath(@"~/Content/UploadedFiles/"); 

    string signuterName = _fileStore.SaveUploadedFile(Request.Files[0], fileDirectory); 

    // Warning: You don't have access to the Session in requests 
    // performed by Flash plugins 
    //Session["SignuterfilePath"] = @"/Content/UploadedFiles/" + signuterName; 

    // Return an ActionResult 
    return Content(signuterName, "text/plain"); 
} 

您還會注意到我已經從控制器操作中刪除了會話呼叫。原因是Uploadify插件使用Flash,Flash無法訪問cookie,因此執行請求時不會有任何會話與其關聯。

+0

感謝您的支持,但它不工作 – Mazen 2011-03-10 10:50:26

+0

@Mazen,請參閱我的更新。 – 2011-03-10 10:54:09

+0

問題是請求甚至在修改js函數後沒有達到動作方法,就像你說的那樣。 – Mazen 2011-03-10 11:57:57