xml地图|网站地图|网站标签 [设为首页] [加入收藏]
编程语言介绍,Extjs文件上传问题总结
分类:编程

  本来文件上传是一个简单而常用的功能,但是,由于刚刚接触extjs,对extjs中的控件及其使用方法并不熟悉,导致本来一个很快就可以搞定的文件上传问题,弄了将近两天的时间。现将问题及解决办法发出来,供有相同烦恼的博园参考。只是我第一次发文,如有不妥,望各位海涵。

unicode 最少16个位

 

  问题描述:在文件上传的时候,在ie浏览器下,文件上传成功以后返回response时,回调函数直接报错:无法调用null或者空值的success属性。

utf-8  默认数字,字符,字母按照8位存储

机器语言

就是机器能看懂的语言,形如010101010010101010101010010101。

  • 优点:最底层,速度最快
  • 缺点:复杂,开发效率最低

  首先看下extjs的代码:

Python2.0用的unicode所以涉及编码转换

汇编语言

  • 优点:比较底层,速度低于机器语言
  • 缺点:复杂,开发效率仅仅高于机器语言
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <link href="Content/Extjs/resources/css/ext-all.css" rel="stylesheet" />
    <script src="Content/Extjs/ext-all-debug.js" type="text/javascript"></script>
    <script src="Content/Extjs/ext-lang-zh_CN.js" type="text/javascript"></script>
    <script type="text/javascript">
        Ext.onReady(function() {

            var uploadForm = Ext.create('Ext.form.Panel', {
                width:400,
                height: 100,
                items: [
                {
                    xtype: 'filefield',
                    fieldLabel: '文件上传',
                    labelWidth: 80,
                    msgTarget: 'side',
                    allowBlank: false,
                    margin: '10,10,10,10',
                    anchor: '100%',
                    buttonText:'选择文件'
                }],
                buttons:[
                {
                    text: '上传',
                    handler: function() {
                        uploadForm.getForm().submit({
                            url: 'ExtFormSubmitAjax.ashx',
                            params: {
                                action: 'UploadFile'
                            },
                            success: function(form, action) {
                                var jsonResult = Ext.JSON.decode(action.response.responseText);
                                if (jsonResult.success) {

                                }
                                Ext.Msg.alert('提示', jsonResult.Msg);
                            }

                        });
                    }
                }, {
                    text: '取消',
                    handler: function() {

                    }
                }],
                buttonAlign:'center'

            });

            var mainPanel = Ext.create('Ext.panel.Panel', {
                renderTo: 'layoutDiv',
                width: 400,
                height: 150,
                margin: '50,50,50,50',
                items: [uploadForm]
            });

        });

    </script>
</head>
<body>
    <div id="layoutDiv"></div>
</body>
</html>

编码转换:

高级语言

  这就是一个简单的文件上传的Extjs代码,由于测试,写的有些凌乱。当点击上传后,调用后台的文件上传代码:

图片 1

编译型

C,C++

  • 优点:如C++等语言在运行前必须经过编译后才能运行,编译后是机器可直接运行的二进制的代码。
  • 缺点:每次改动必须经过重新编译,跨平台性差
        public void UploadFile(HttpContext context)
        {
            try
            {
                HttpFileCollection fileList = context.Request.Files;
                if (fileList.Count > 0)
                {
                    String fileName = fileList[0].FileName;
                    //在ie浏览器下需要截取文件名称,因为获取的是上传文件的全路径,其他浏览器不需要截取
                    fileName = fileName.Substring(fileName.LastIndexOf("\", StringComparison.Ordinal) + 1);
                    String uploadFilePath = context.Server.MapPath("/upload");
                    String fileSavePath = uploadFilePath + "\" + fileName;
                    if (File.Exists(fileSavePath))
                    {
                        File.Delete(fileSavePath);
                    }
                    fileList[0].SaveAs(fileSavePath);
                    context.Response.Write("{success:true,Msg:"文件上传成功"}");
                }
                else
                {
                    context.Response.Write("{success:false,Msg:"请选择一个需要上传的文件"}");
                }
            }
            catch (Exception)
            {
            }
        }

 

解释型

Python,JavaScript,Php

类似日常生活中的“同声翻译”,边翻译边运行,因此运行效率低.而且不能生成二进制文件,应用程序不能脱离解释器。

但是mac或linux上默认有python解释器。

  • #### 优点:跨平台开发,开发效率高

  • #### 缺点:运行效率低,依赖解释器(为什么效率低还如此火爆,因为现在的硬件水平上去了。)

比如C语言执行一段程序0.001秒 如果python比它慢10倍那就是0.01秒(人类的最快反应时间是0.3s所以几乎感受不到)

   按理说这样就可以完成文件上传的操作,但是,我的程序在ie上运行,就是报错。一直提示在ext-all-debug.js中的这里报错:

列表分割:split

本文由澳门新葡亰手机版发布于编程,转载请注明出处:编程语言介绍,Extjs文件上传问题总结

上一篇:指标的创造进度,和讯抓取尝试 下一篇:你能熟练使用Dictionary字典和List列表吗,python基础
猜你喜欢
热门排行
精彩图文