2011-11-05 77 views
0

可能重複:
Uploadify: show error message from HTTP responseuploadify錯誤HTTP:undefined?

我試圖讓Uploadify在我的asp.net MVC 3應用工作。我收到一個錯誤(請參閱標題)。這是我的看法:

@{ 
    ViewBag.Title = "Home Page"; 
} 

    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.3.2.min.js")"></script> 
    <script type="text/javascript" src="@Url.Content("~/Scripts/swfobject.js")"></script> 
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery.uploadify.v2.1.0.min.js")"></script> 

    <input type="file" name="fileInput1" id="fileInput1" /> 
    <span id="result"></span><a href="javascript:$('#fileInput1').uploadifyUpload();">Upload 
     File</a> 


<script type="text/javascript"> 
    $(document).ready(function() { 

     $("#fileInput1").uploadify({ 
      uploader: '@Url.Content("~/Scripts/uploadify.swf")', 
      script: '@Url.Action("Upload", "Upload")', 
      fileDataName: 'file', 
      buttonText: 'File Input 1...', 
      multi: false, 
      sizeLimit: 22222222222, 
      simUploadLimit: 1, 
      cancelImg: '@Url.Content("~/Scripts/cancel.png")', 
      auto: false, 
      onError: function (a, b, c, d) { 
       if (d.status == 404) 
        alert("Could not find upload script. Use a path relative to: " + "<?= getcwd() ?>"); 
       else if (d.type === "HTTP") { 
        console.log("error " + d.type + ": " + d.status); 
        alert("error " + d.type + ": " + d.status); 
       } 
       else if (d.type === "File Size") 
        $("#result").html("file too big"); 
       //alert(c.name + " " + d.type + " Limit: " + Math.round(d.info/(1024 * 1024)) + "MB"); 
       else 
        alert("error " + d.type + ": " + d.text); 
      }, 
      onComplete: function (event, queueId, fileObj, response, data) { 
       alert(response); 
      } 
     }); 


    }); 

</script> 
+0

談談你的控制器動作?它打了嗎? –

+0

控制器操作未命中 – user603007

回答

0

您得到最有可能的錯誤指示,有一些問題是應該處理文件上傳服務器端操作。我懷疑是拋出了一些異常。

嘗試用下面的控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Upload(HttpPostedFileBase file) 
    { 
     if (file != null && file.ContentLength > 0) 
     { 
      var appData = Server.MapPath("~/app_data"); 
      var filename = Path.Combine(appData, Path.GetFileName(file.FileName)); 
      file.SaveAs(filename); 
     } 
     return Json(true); 
    } 
} 

還搭配了最新版本的jQuery的嘗試和uploadify。我剛剛使用jquery 1.5.1進行了測試,並使用您發佈的完全相同的代碼以及我展示的控制器操作進行了uploadify 2.1.4,並且它的工作非常好。

這是我的看法Index.cshtml:

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.5.1.js")"></script> 
<script type="text/javascript" src="@Url.Content("~/Scripts/swfobject.js")"></script> 
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.uploadify.v2.1.4.js")"></script> 

<input type="file" name="fileInput1" id="fileInput1" /> 
<span id="result"></span> 
<a href="javascript:$('#fileInput1').uploadifyUpload();">Upload File</a> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#fileInput1").uploadify({ 
      uploader: '@Url.Content("~/Scripts/uploadify.swf")', 
      script: '@Url.Action("Upload", "Home")', 
      fileDataName: 'file', 
      buttonText: 'File Input 1...', 
      multi: false, 
      sizeLimit: 22222222222, 
      simUploadLimit: 1, 
      cancelImg: '@Url.Content("~/Scripts/cancel.png")', 
      auto: false, 
      onError: function() { 
       alert('some error occurred. Sorry'); 
      }, 
      onComplete: function (event, queueId, fileObj, response, data) { 
       alert(response); 
      } 
     }); 
    }); 
</script>