无废话ExtJs 入门教程十三[上传图片:File]

1.代码如下:

复制代码
  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <title></title>
  5     <!--ExtJs框架开始-->
  6     <script type="text/javascript" src="/Ext/adapter/ext/ext-base.js"></script>
  7     <script type="text/javascript" src="/Ext/ext-all.js"></script>
  8     <script src="/Ext/src/locale/ext-lang-zh_CN.js" type="text/javascript"></script>
  9     <link rel="stylesheet" type="text/css" href="/Ext/resources/css/ext-all.css" />
 10     <!--ExtJs框架结束-->
 11     <script type="text/javascript">
 12         Ext.onReady(function () {
 13             //初始化标签中的Ext:Qtip属性。
 14             Ext.QuickTips.init();
 15             Ext.form.Field.prototype.msgTarget = 'side';
 16             //创建div组件
 17             var imagebox = new Ext.BoxComponent({
 18                 autoEl: {
 19                     style: 'width:150px;height:150px;margin:0px auto;border:1px solid #ccc; text-align:center;padding-top:20px;margin-bottom:10px',
 20                     tag: 'div',
 21                     id: 'imageshow',
 22                     html: '暂无图片'
 23                 }
 24             });
 25             //创建文本上传域
 26             var file = new Ext.form.TextField({
 27                 name: 'imgFile',
 28                 fieldLabel: '文件上传',
 29                 inputType: 'file',
 30                 allowBlank: false,
 31                 blankText: '请浏览图片'
 32             });
 33             //提交按钮处理方法
 34             var btnsubmitclick = function () {
 35                 if (form.getForm().isValid()) {
 36                     form.getForm().submit({
 37                         waitTitle: "请稍候",
 38                         waitMsg: '正在上传...',
 39                         success: function (form, action) {
 40                             Ext.MessageBox.alert("提示", "上传成功!");
 41                             document.getElementById('imageshow').innerHTML = '<img style="width:150px;height:150px" src="' + action.result.path + '"/>';
 42                         },
 43                         failure: function () {
 44                             Ext.MessageBox.alert("提示", "上传失败!");
 45                         }
 46                     });
 47                 }
 48             }
 49             //重置按钮"点击时"处理方法
 50             var btnresetclick = function () {
 51                 form.getForm().reset();
 52             }
 53             //表单
 54             var form = new Ext.form.FormPanel({
 55                 frame: true,
 56                 fileUpload: true,
 57                 url: '/App_Ashx/Demo/Upload.ashx',
 58                 title: '表单标题',
 59                 style: 'margin:10px',
 60                 items: [imagebox, file],
 61                 buttons: [{
 62                     text: '保存',
 63                     handler: btnsubmitclick
 64                 }, {
 65                     text: '重置',
 66                     handler: btnresetclick
 67                 }]
 68             });
 69             //窗体
 70             var win = new Ext.Window({
 71                 title: '窗口',
 72                 width: 476,
 73                 height: 374,
 74                 resizable: true,
 75                 modal: true,
 76                 closable: true,
 77                 maximizable: true,
 78                 minimizable: true,
 79                 buttonAlign: 'center',
 80                 items: form
 81             });
 82             win.show();
 83         });
 84     </script>
 85 </head>
 86 <body>
 87 <!--
 88 说明:
 89 (1)var imagebox = new Ext.BoxComponent():创建一个新的html标记。
 90     官方解释如下:
 91     This may then be added to a Container as a child item.
 92     To create a BoxComponent based around a HTML element to be created at render time, use the autoEl config option which takes the form of a DomHelper specification:
 93 (2) autoEl: {style: '',tag: 'div',id: 'imageshow', html: '暂无图片'}定义这个html标记的属性,如 标记为:div,id是多少等。
 94     官方实例为:
 95     var myImage = new Ext.BoxComponent({
 96     autoEl: {
 97         tag: 'img',
 98         src: '/images/my-image.jpg'
 99         }
100     });
101 (3)var file = new Ext.form.TextField():创建一个新的文件上传域。 
102 (4)name: 'imgFile':名称,重要,因为service端要根据这个名称接收图片。
103 (5)inputType: 'file':表单类型为文件类型。
104 (6)waitTitle: "请稍候",waitMsg: '正在上传...',:上传等待过程中的提示信息。    
105 (7)document.getElementById('imageshow').innerHTML = '<img style="width:150px;height:150px" src="' + action.result.path + '"/>';这个是原生态的js,把imageshow的值换成图片。
106 -->
107 </body>
108 </html>
复制代码

其中与service交互用上传图片的 一般处理程序文件,源码如下:

/App_Ashx/Demo/Upload.ashx

复制代码
 1 using System;
 2 using System.Web;
 3 using System.IO;
 4 using System.Globalization;
 5 
 6 namespace HZYT.ExtJs.WebSite.App_Ashx.Demo
 7 {
 8     public class Upload : IHttpHandler
 9     {
10         public void ProcessRequest(HttpContext context)
11         {
12             //虚拟目录,建议写在配置文件中
13             String strPath = "/Upload/Image/";
14             //文件本地目录
15             String dirPath = context.Server.MapPath(strPath);
16             //接收文件
17             HttpPostedFile imgFile = context.Request.Files["imgFile"];
18             //取出文件扩展名
19             String fileExt = Path.GetExtension(imgFile.FileName).ToLower();
20             //重新命名文件
21             String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
22             //文件上传路径
23             String filePath = dirPath + newFileName;
24             //保存文件
25             imgFile.SaveAs(filePath);
26             //客户端输出
27             context.Response.Write("{success:true,path:'" + strPath + newFileName + "'}");
28         }
29 
30         public bool IsReusable
31         {
32             get
33             {
34                 return false;
35             }
36         }
37     }
38 }
复制代码

 

 2.效果如下:

无废话extjs

3.说明:

(1)上传域不光可以上传图片,还要以上传其他文件。这里我们以图片为例。

(2)在实际开发中,我们还要对图片格式,大小等进行校验,这个示例测重于上传,没有加入任何校验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Electron集成ExtJS的详细教程,以下是一个简单的步骤指南: 步骤1:创建Electron项目 首先,你需要创建一个Electron项目。可以通过使用Electron提供的命令行工具(electron-forge、electron-builder等)或手动创建一个基本的Electron项目。 步骤2:下载ExtJS框架 前往Sencha官方网站下载ExtJS框架。选择适合你的版本,并下载压缩包。 步骤3:解压缩ExtJS框架 将下载的ExtJS压缩包解压到你的Electron项目的目录中。确保将其放置在一个易于访问的位置。 步骤4:引入ExtJS库 在你的Electron项目的index.html文件中,使用script标签引入ExtJS库。根据你的文件结构和解压位置,设置正确的路径。 ```html <script src="path/to/extjs/ext-all.js"></script> ``` 步骤5:创建ExtJS应用 在你的Electron项目中创建一个新的JavaScript文件,用于编写ExtJS应用。在该文件中,编写ExtJS应用的代码逻辑。 ```javascript // 示例代码 Ext.application({ name: 'MyApp', launch: function () { Ext.create('Ext.panel.Panel', { title: 'Hello ExtJS!', width: 400, height: 300, renderTo: Ext.getBody() }); } }); ``` 步骤6:加载ExtJS应用 在Electron项目的主进程(main.js)中,使用BrowserWindow加载ExtJS应用的入口文件。 ```javascript // 示例代码 const { app, BrowserWindow } = require('electron'); const path = require('path'); function createWindow() { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }); mainWindow.loadFile('path/to/your/extjs-application.js'); // 其他窗口逻辑... } app.whenReady().then(() => { createWindow(); }); ``` 步骤7:运行Electron应用 最后,通过运行你的Electron应用来启动集成了ExtJS的界面。 确保在Electron项目的根目录下运行以下命令: ```bash electron . ``` 以上是一个简单的详细教程,希望能对你有所帮助。根据你的具体需求和项目结构,还可能需要进行更多配置和调整。同时,建议参考ExtJS官方文档和Electron文档以获得更详细的信息和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值