Kin*_*tor 35 asp.net-mvc jquery uploadify
我正在尝试使用jQuery插件Uploadify来使用ASP.NET MVC.
我已经通过以下JavaScript代码段显示了插件:
<script type="text/javascript">
$(document).ready(function() {
$('#fileUpload').fileUpload({
'uploader': '/Content/Flash/uploader.swf',
'script': '/Placement/Upload',
'folder': '/uploads',
'multi': 'true',
'buttonText': 'Browse',
'displayData': 'speed',
'simUploadLimit': 2,
'cancelImg': '/Content/Images/cancel.png'
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这似乎一切都很好.如果您注意到,"script"属性设置为my/Placement/Upload,这是我的Placement Controller和我的Upload Action.
主要问题是,我很难将此操作触发以接收文件.我在该操作上设置了一个断点,当我选择要上传的文件时,它没有被执行.
我试过根据这篇文章改变方法签名:
public string Upload(HttpPostedFileBase FileData)
{
/*
*
* Do something with the FileData
*
*/
return "Upload OK!";
}
Run Code Online (Sandbox Code Playgroud)
但这仍然不会发生.
任何人都可以帮我写并正确获取上传控制器动作的签名,这样它实际上会触发吗?然后我可以自己处理文件数据.我只是需要一些帮助才能触发方法操作.
Jus*_*tin 20
public string Upload(HttpPostedFileBase FileData) {}
Run Code Online (Sandbox Code Playgroud)
是正确的 - uploadify上传的文件将被绑定到FileData.无需进入Request.Files来检索文件 - 这使得模拟和测试变得更加困难.
如果您的操作根本没有触发(即尝试调试并查看方法中的断点是否被命中),那么您的问题很可能是"脚本"值 - 您是在虚拟目录下运行吗?如果是这样,您需要将目录的名称放在前面.Uploadify使用绝对路径.
即'script:'/ virtual_directory/Placement/Upload'
现在uploadify正在发送到http:// localhost/Placement/Upload.
还可以尝试使用路由调试器(http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx)来检查路由的映射位置.
dp.*_*dp. 10
问题可能是您需要指定要上传到的操作设置为发布...它不能作为Get操作使用该操作.
所以这:
public string Upload(HttpPostedFileBase FileData)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
应该是这样的:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload(HttpPostedFileBase FileData)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
此外,请注意,如果您在网站的"登录"部分中使用此功能,则应查看有关uploadify和身份验证的已知错误:http://geekswithblogs.net/apopovsky/archive/2009/ 05//工作周围快闪cookie的错误-在- asp.net-mvc.aspx
另外,在MVC中,有几种方法可以处理文件上传(根据Rory Fitzpatrick的建议使用Request.Files,以及在操作定义中将HttpPostedFileBase文件作为参数传递).为了让Uploadify起作用,这应该不重要.
| 归档时间: |
|
| 查看次数: |
26153 次 |
| 最近记录: |