zoukankan      html  css  js  c++  java
  • EXTJS +SwfUpload+ashx 实现文件多选上传

    根据项目要求,实现文件多选上传,单个文件上传 Extjs 有现成示例,多个文件选择上传,貌似js办不到,只能依据flash l了, 不多说,看代码,直接在Extjs 4.0.7 的window 示例中的layout例子,中添加多个文件上传对话框,

    swfupload 控件 使用代码可查看官方示例

    HTML

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Window Layouts Example</title>
        <link rel="stylesheet" type="text/css" href="ext-4.0.7-gpl/resources/css/ext-all.css"/>
    
        <!-- GC -->
        <script type="text/javascript" src="ext-4.0.7-gpl/bootstrap.js"></script>
        	<script type="text/javascript" src="swfupload/swfupload.js"></script>
        <script type="text/javascript" src="swfjs/swfupload.queue.js"></script>
    	<script type="text/javascript" src="swfjs/handlers.js"></script>
        <script type="text/javascript" src="swfjs/layout.js"></script>
    
        <!-- Common Styles for the examples -->
        <link rel="stylesheet" type="text/css" href="ext-4.0.7-gpl/examples/shared/example.css"/>
       <link href="css/default.css" rel="stylesheet" type="text/css" />
        <style type="text/css">
            .x-panel-body p {
                margin: 10px;
                font-size: 12px;
            }
        </style>
    </head>
    <body>
    <!-- EXAMPLES -->
    <h1>Windows with Layouts</h1>
    <p>This example shows how Ext containers can be nested in windows to create advanced layouts.</p>
    <input type="button" id="show-btn" value="Layout Window"/><br/><br/>
    <p>Note that the js is not minified so it is readable. See <a href="js/layout.js">layout.js</a> for the full source code.</p>
    </body>
    </html>
    

     layout.js 代码

    Ext.require([
        'Ext.tab.*',
        'Ext.window.*',
        'Ext.tip.*',
        'Ext.layout.container.Border'
    ]);
    Ext.onReady(function () {
    
    var UpDate=new Date;
     var  PformUpload = new Ext.form.FormPanel({
                  baseCls: 'x-plain',
                   labelWidth: 80,
                // fileUpload: true,
               //   defaultType: 'textfield',
                  items: [
    			     {
                        xtype:'textfield',
    	                fieldLabel:'aa',
    					500,
    	                id:'PUploadBumen',
    	                name:'PUpbumen',
    	                value:"yanli",
    	                allowBlank:false,
    					readOnly:true
    	             },               
    				{
                        xtype:'textfield',
    					fieldLabel:'bb',
    					500,
    	                id:'PUploadRen',
    	                name:'PUpren',
    	                value:"liyan",
    	                allowBlank:false
    				},
    
    				{
                        xtype:'textfield',
    					fieldLabel:'提交日期',
    					500,
    	                id:'PUpload_Date',
    	                name:'PUp_Date',
    	                value:UpDate.toLocaleString(),
    	                allowBlank:false
    
    	            },
                    {
                       xtype:'displayfield',
                       name:'Pdispalyfield2',
                       fieldLabel:'说明',
                       value:'<span style="color:red;">一次性最大文件上传个数900</span>'
    
    
                    },
    				{
    				  html: "<div id='content'><div id='swfu_container' style='margin: 0px 10px;'><div><span id='spanButtonPlaceholder'></span><input id='btnCancel'  type='button' value='取消上传' onclick='swfu.cancelQueue();'  style='margin-left: 2px; font-size: 8pt; height: 22px;' /></div><div id='divFileProgressContainer' style='height: 75px;'></div><div id='thumbnails'></div></div></div>"
                   
    				
    				}
    				]
                  });
    
        var swfu;
        button = Ext.get('show-btn');
        var win;
        button.on('click', function () {
        
            if (!win) {
                win = Ext.create('widget.window', {
                    title: 'Layout Window',
                    closable: true,
                    closeAction: 'hide',
                     600,
                    minWidth: 350,
                    height: 350,
                    layout:'fit',
                    bodyStyle: 'padding: 5px;',
                    items: PformUpload,
                    
                   // html: "<div id='content'><div id='swfu_container' style='margin: 0px 10px;'><div><span id='spanButtonPlaceholder'></span><input id='btnCancel' type='button' value='取消上传' onclick='swfu.cancelQueue();'  style='margin-left: 2px; font-size: 8pt; height: 22px;' /></div><div id='divFileProgressContainer' style='height: 75px;'></div><div id='thumbnails'></div></div></div>",
                   
    			   listeners: {
                        "afterrender": function () {
    
                                 swfu = new SWFUpload({
                                // Backend Settings
                                upload_url: "../Pswfupload.ashx?bumen=kxs",
                                post_params: {
                                    "ASPSESSID": "<%=Session.SessionID %>",
                                    "renname":"张三"
                                },
    
                                // File Upload Settings
                                file_size_limit: "500 MB",
                                file_types: "*.dwg",
                                file_types_description: "CAD文件",
                                file_upload_limit: "0",    // Zero means unlimited
    
                                // Event Handler Settings - these functions as defined in Handlers.js
                                //  The handlers are not part of SWFUpload but are part of my website and control how
                                //  my website reacts to the SWFUpload events.
                                file_queue_error_handler: fileQueueError,
                                file_dialog_complete_handler: fileDialogComplete,
                                upload_progress_handler: uploadProgress,
                                upload_error_handler: uploadError,
                                upload_success_handler: uploadSuccess,
                                upload_complete_handler: uploadComplete,
    
                                // Button settings
                                button_image_url: "images/XPButtonNoText_160x22.png",
                                button_placeholder_id: "spanButtonPlaceholder",
                                button_ 160,
                                button_height: 22,
                                button_text: '<span class="button">选择dwg文件<span class="buttonSmall"></span></span>',
                                button_text_style: '.button {margin: 10px 30px 10px 10px; font-family: Helvetica, Arial, sans-serif; font-size: 14pt; } .buttonSmall { font-size: 10pt; }',
                                button_text_top_padding: 1,
                                button_text_left_padding: 5,
    
                                // Flash Settings
                                flash_url: "swfupload/swfupload.swf", // Relative to this file
    
                                custom_settings: {
                                    upload_target: "divFileProgressContainer",
                                    cancelButtonId: "btnCancel"
    
                                },
    
                                // Debug Settings
                                debug: false
                            });
                        }
    
                    }
                });
            }
            button.dom.disabled = true;
            if (win.isVisible()) {
                win.hide(this, function () {
                    button.dom.disabled = false;
                });
            } else {
                win.show(this, function () {
                    button.dom.disabled = false;
                });
            }
        });
    });
    

     后台ashx 代码

    string CADfilepath = System.Configuration.ConfigurationManager.AppSettings["CADFilePath"];
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "text/plain";
            HttpPostedFile jpeg_image_upload = context.Request.Files["Filedata"];
            string path = "c:\\cc\\" + jpeg_image_upload.FileName;
            jpeg_image_upload.SaveAs(path);
            string tartget1 = "c:\\aa\\" + jpeg_image_upload.FileName;
           File.Copy(path, tartget1, true);
          context.Response.Write("Hello World");
    

     注意点:该控件 一次性最多上传900个文件,并不是无限量,但大小无限制

  • 相关阅读:
    【技术博客】利用handler实现线程之间的消息传递
    BUAA软件工程个人作业-软件案例分析
    BUAA软件工程结对项目作业
    BUAA软件工程个人项目作业
    BUAA软件工程个人博客作业
    BUAA-软件工程第一次作业
    BUAA-OO-最后单元总结
    BUAA-OO-第三单元总结
    BUAA-OO-第二单元总结
    第四单元总结&&OO总结
  • 原文地址:https://www.cnblogs.com/marky/p/3078052.html
Copyright © 2011-2022 走看看