我这里是 Asp.net MVC 4 的项目, 在VS2010的调试状态下,是可以上传的; 但发布之后,上传会出现 HttpError 404的错误。
原因是:uploader 指向的后台Controller,在发布之后找不到
'uploader': '/RefactorTest/Upload',而用 @Url.Content 包起来,如下:
'uploader': '@Url.Content("~/RefactorTest/Upload")',
以下是Uploadify 3.1的调用例子:
<link href="@Url.Content("~/Scripts/uploadify-v3.1/uploadify.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.8.1.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/uploadify-v3.1/jquery.uploadify-3.1.min.js")" type="text/javascript"></script>
<script type="text/javascript"> $(function () { $('#file_upload').uploadify({ 'buttonText': 'Upload', 'swf': '@Url.Content("~/Scripts/uploadify-v3.1/uploadify.swf")', //'buttonImage': '@Url.Content("~/Scripts/uploadify-v3.1/Review.jpg")', 'uploader': '@Url.Content("~/RefactorTest/Upload")', 'onUploadSuccess': function (file, data, response) { eval("data=" + data); // this line can not be removed. //alert('文件 ' + file.name + ' 已经上传成功,并返回 ' + response + ' 保存文件名称为 ' + data.SaveName); if (!data.Success) { $("#linkError").html(data.Message); $("#dvTree").html(""); } else { $("#linkError").html(""); $("#file_show").val(data.SaveName); $("#imgWait").css("display", "inline"); $("#btnReview").click(); } } }); }); </script>
效果图如下: