uploadify错误HTTP:未定义? [英] uploadify error HTTP: undefined?
问题描述
可能重复:结果
<一href=\"http://stackoverflow.com/questions/1877644/uploadify-show-error-message-from-http-response\">Uploadify:显示来自HTTP响应错误信息
块引用>我试图让Uploadify在我的asp.net MVC 3应用工作。我得到一个错误(见标题)。这是我的看法:
@ {
ViewBag.Title =主页;
} &LT;脚本类型=文/ JavaScript的SRC =@ Url.Content(〜/脚本/ jQuery的-1.3.2.min.js)&GT;&LT; / SCRIPT&GT;
&LT;脚本类型=文/ JavaScript的SRC =@ Url.Content(〜/脚本/ swfobject.js)&GT;&LT; / SCRIPT&GT;
&LT;脚本类型=文/ JavaScript的SRC =@ Url.Content(〜/脚本/ jquery.uploadify.v2.1.0.min.js)&GT;&LT; / SCRIPT&GT; &LT;输入类型=文件名称=fileInput1ID =fileInput1/&GT;
&LT;跨度ID =结果&GT;&LT; / SPAN&GT;&LT; A HREF =JavaScript的:$('#fileInput1')uploadifyUpload();&GT;上传
文件&LT; / A&GT;
&LT;脚本类型=文/ JavaScript的&GT;
$(文件)。就绪(函数(){ $(#fileInput1)。uploadify({
上传者:@ Url.Content(〜/脚本/ uploadify.swf)',
脚本:@ Url.Action(上传,上传)',
fileDataName:文件,
buttonText:文件输入1 ...,
多:假的,
的sizeLimit:22222222222,
simUploadLimit:1,
cancelImg:@ Url.Content(〜/脚本/ cancel.png)',
汽车:假的,
的onError:功能(A,B,C,D){
如果(d.status == 404)
警报(找不到上传脚本使用相对路径:+&LT; = GETCWD()&GT;?);
否则,如果(d.type ===HTTP){
的console.log(错误+ d.type +:+ d.status);
警报(错误+ d.type +:+ d.status);
}
否则,如果(d.type ===文件大小)
$(#结果)HTML(文件太大)。
//alert(c.name ++ d.type +限价+ Math.round(d.info /(1024 * 1024))+MB);
其他
警报(错误+ d.type +:+ d.text);
},
的onComplete:函数(事件,queueId,FileObj文件,响应,数据){
警报(响应);
}
});
});&LT; / SCRIPT&GT;
解决方案您得到最有可能的错误指示,有一些问题是应该处理文件上传服务器端操作。我怀疑某些异常。
与以下控制器尝试:
公共类HomeController的:控制器
{
公众的ActionResult指数()
{
返回查看();
} [HttpPost]
公众的ActionResult上传(HttpPostedFileBase文件)
{
如果(文件= NULL&放大器;!&安培; file.ContentLength大于0)
{
VAR APPDATA =使用Server.Mappath(〜/ App_Data文件);
变种文件名= Path.Combine(AppData的,Path.GetFileName(file.FileName));
file.SaveAs(文件名);
}
返回JSON(真);
}
}还搭配了最新版本的jQuery的尝试和uploadify。我刚才用jQuery 1.5.1测试和uploadify 2.1.4具有完全相同的code您已发布,并与控制器动作我发现,它的工作完美的罚款。
下面是我的看法Index.cshtml:
&LT;脚本类型=文/ JavaScript的SRC =@ Url.Content(〜/脚本/ jQuery的-1.5.1.js)&GT;&LT; /脚本&GT;
&LT;脚本类型=文/ JavaScript的SRC =@ Url.Content(〜/脚本/ swfobject.js)&GT;&LT; / SCRIPT&GT;
&LT;脚本类型=文/ JavaScript的SRC =@ Url.Content(〜/脚本/ jquery.uploadify.v2.1.4.js)&GT;&LT; / SCRIPT&GT;&LT;输入类型=文件名称=fileInput1ID =fileInput1/&GT;
&LT;跨度ID =结果&GT;&LT; / SPAN&GT;
&LT; A HREF =JavaScript的:$('#fileInput1')uploadifyUpload();&GT;上传文件&LT; / A&GT;&LT;脚本类型=文/ JavaScript的&GT;
$(文件)。就绪(函数(){
$(#fileInput1)。uploadify({
上传者:@ Url.Content(〜/脚本/ uploadify.swf)',
脚本:@ Url.Action(上传,家),
fileDataName:文件,
buttonText:文件输入1 ...,
多:假的,
的sizeLimit:22222222222,
simUploadLimit:1,
cancelImg:@ Url.Content(〜/脚本/ cancel.png)',
汽车:假的,
onError的:功能(){
警报('发生了一些错误对不起');
},
的onComplete:函数(事件,queueId,FileObj文件,响应,数据){
警报(响应);
}
});
});
&LT; / SCRIPT&GT;Possible Duplicate:
Uploadify: show error message from HTTP responseI am trying to get Uploadify to work in my asp.net mvc 3 app. I am getting an error( see title). This is my view:
@{ 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>
解决方案The error you are getting most probably indicates that there is some problem with the server side action that is supposed to handle the file upload. I suspect that some exception is thrown.
Try with the following controller:
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); } }
Also try with a more recent version of jquery and uploadify. I have just tested with jquery 1.5.1 and uploadify 2.1.4 with the exact same code you have posted and with the controller action I showed and it worked perfectly fine.
Here's my Index.cshtml view:
<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>
这篇关于uploadify错误HTTP:未定义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!