首页 新闻 会员 周边

jquery上传文件的插件uploadify-v3.1的问题

0
悬赏园豆:5 [已解决问题] 解决于 2012-12-30 20:35

如题:在线等

 

这是我的html

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Uploadify</title>

    <link href="/uploadify-v3.1/uploadify.css" rel="stylesheet" type="text/css" />
    <script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="/uploadify-v3.1/jquery.uploadify-3.1.min.js" type="text/javascript"></script>

       <script type="text/javascript">

           $(function () {
               $('#uploadFile').uploadify({
       
                   'swf': '/uploadify-v3.1/uploadify.swf")',
                   'uploader': '<%:Url.Action("haha") %>',
                   'onUploadComplete': function (file) {
                       alert('The file ' + file.name + ' finished processing.');
                   }
               });
           });


       </script>


</head>
<body>
    <div id="fileQueue"></div>
    <input type="file" name="uploadFile" id="uploadFile" />
    <p>
      <a href="javascript:$('#uploadify').uploadifyUpload()">上传</a>| 
      <a href="javascript:$('#uploadify').uploadifyClearQueue()">取消上传</a>
    </p>
</body>
</html>

上传后台是这样的

     [HttpPost]
        public JsonResult haha(HttpPostedFileBase file)
        {
//调试发现这里的file是null
            if (file != nul)
           {
               string filePath = Server.MapPath("/MyUpload/");

               string fileName = Path.GetFileName(file.FileName);
               string fileExtension = Path.GetExtension(fileName); 
               string saveName = Guid.NewGuid().ToString() + fileExtension; 
               file.SaveAs(filePath + saveName);

               return Json(new { Success = true, FileName = fileName, SaveName = saveName });

           }
           else
           {
               return Json(new { Success = false, Message = "请选择要上传的文件!" }, JsonRequestBehavior.AllowGet);
           }

          
        }

现在的问题是后台接受的file是null,求指教

动感超人z的主页 动感超人z | 初学一级 | 园豆:1
提问于:2012-12-29 20:23
< >
分享
最佳答案
0

兄弟解决没有啊,答案在这里 建议多看看官方的说明文档

$(function () {
               $(
'#uploadFile').uploadify({
      
                  
'swf': '/uploadify-v3.1/uploadify.swf")',
                  
'uploader': '<%:Url.Action("haha") %>',

        'fileObjName':'file', //这个要和后台接受的参数名一样,不区分大小写,默认的是filedata 所以你用file取不到值
                  
'onUploadComplete': function (file) {
                       alert(
'The file ' + file.name + ' finished processing.');
                   }
               });
           });

收获园豆:5
神都码农 | 菜鸟二级 |园豆:251 | 2012-12-30 10:41

昨天已经发现只有使用FileData才能接收到数据了,但是不知道原因,多谢指教。顺便问下这是为什么呢,我的意思是这是基于什么样的理论,为什么后台接受数据的参数名一定要是fileObjName这个设置的值呢,

动感超人z | 园豆:1 (初学一级) | 2012-12-30 20:41

@枼秋: 这个是在flash里面设置的,你如果写过flash就知道了,flash选择完图片然后转换成字节来发送到服务端,FileData就是一个参数命名, fileObjName是flash里面flash暴露出来接口配置,方便用户自定义!

神都码农 | 园豆:251 (菜鸟二级) | 2013-01-02 13:49
其他回答(2)
0

你要想得到参数才能进行复制,你看一下你的参数传递过来了吗。如果没有,则是前台的问题,如果传递过来了,那么你就可以看一下后台没有读取到数据!!

Kencery | 园豆:357 (菜鸟二级) | 2012-12-30 11:55
0
chenping2008 | 园豆:9836 (大侠五级) | 2012-12-30 14:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册