ExtJS+C#实现文件上传到服务器

一、前端ExtJS代码

	  Ext.applyIf(me, {
            items: [{
                id: "fileUploadForm",
                xtype: "form",
                frame: true,
                bodyPadding: 10,
                items: [{
                    xtype: 'filefield',
                    id: 'fileUpload',
                    name: 'fileUpload',
                    fieldLabel: '文件名称',
                    labelWidth: 60,
                    msgTarget: 'side',
                    fileUpload: true,
                    allowBlank: false,
                    anchor: '100%',
                    buttonText: '请选择上传文件位置'
                }],
                buttons: [{
                    text: '上传文件',
                    buttonAlign: 'center',
                    handler: function () {
                        var that = this;
                        var form = this.up('form').getForm();
                        //验证表单
                        if (form.isValid()) {
                            form.submit({
                                url: "Handler/fileUpload.ashx",
                                waitMsg: '文件正在上传,请耐心等待....',
                                method: "POST",
                                success: function (fp, o) {
                                    Ext.Msg.alert('文件上传成功', o.result.message);
                                },
                                failure: function (fp, o) {
                                    Ext.Msg.alert("错误提示", "文件上传失败!");
                                }
                            });
                        }
                    }
                }]
            }]
        });

二、C#代码(即fileUpload.ashx文件)

using System;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Web.Script.Serialization;

namespace FileUpload.Web.Handler
{

    public class FileUpload: IHttpHandler, IRequiresSessionState
    {
        String URL = System.Configuration.ConfigurationManager.AppSettings["uploadURL"];
        public void ProcessRequest(HttpContext context)
        {
            string res = string.Empty;
            res=FileUpload(context);
            context.Response.Write(res);
        }
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="context">上下文</param>
        /// <returns></returns>
        public String FileUpload(HttpContext context)
        {
            Result result = new Result();
            try
            {
                string guid = Guid.NewGuid().ToString("N");
                int c = context.Request.Files.Count;
                if (context.Request.Files.Count == 0)
                {
                    return "";
                }
                string localPath = Path.Combine(HttpRuntime.AppDomainAppPath, "Upload/");
                HttpPostedFile file = context.Request.Files[0];
                string name = Path.GetFileNameWithoutExtension(file.FileName);
                string ex = Path.GetExtension(file.FileName);//文件的后缀
                string filePathName = name + guid + ex;
                if (!System.IO.Directory.Exists(localPath))
                {
                    System.IO.Directory.CreateDirectory(localPath);
                }
                string saveurl = Path.Combine(localPath, filePathName);
                file.SaveAs(saveurl);
                //文件的url地址
                saveurl = "http://" + context.Request.UrlReferrer.Host + "//Upload//" + "/" + filePathName;
                string elativepath = URL + "Upload/" + "/" + filePathName;
                result.flag = 0;
                result.success = true;
                result.message = "文件上传成功";
                result.url = elativepath;
                result.name = name + ex;
                JavaScriptSerializer res = new JavaScriptSerializer();
                return res.Serialize(result);
            }
            catch (Exception e)
            {
                return "e";
            }

        }
        public class Result
        {
            public int flag; //标识符
            public String url;//存储路径
            public String name;//文件名
            public bool success;
            public String message;

        }
    }
}

三、配置Web.config文件

<appSettings>
    <add key="uploadURL" value="http://111.111.0.111:8080/Web/" />
    //http://111.111.0.111:8080/Web/ 为项目IIS部署地址
</appSettings>

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值