首页 > 代码库 > 文件的导入

文件的导入

首先要引入一个JS包:  <script src="http://www.mamicode.com/Themes/Default/Scripts/ajaxupload.js"></script>

//  前台html

<!-- 上传文件入库-->
        <div class="uploadFile">
            <span id="doc">
                <input type="text" disabled="disabled" /></span>
            <input type="hidden" id="hidFileName" />
            <input type="button" id="btnUploadFile" value="http://www.mamicode.com/上传" />
            <input type="button" id="btnDeleteFile" value="http://www.mamicode.com/删除" />
        </div>  

//  前台函数

   //初始化文档上传
        function init() {
            //初始化文档上传  
            var btnFile = document.getElementById("btnUploadFile");
            var doc = document.getElementById("doc");
            var hidFileName = document.getElementById("hidFileName");
            document.getElementById("btnDeleteFile").onclick = function () { DelFile(doc, hidFileName); };
            g_AjxUploadFile(btnFile, doc, hidFileName);
        }
        var g_AjxTempDir = "/Upload/txt/";  // 上传文件所要保存的文件夹
        //文档上传  
        function g_AjxUploadFile(btn, doc, hidPut, action) {
            var button = btn, interval;
            new AjaxUpload(button, {
                action: ((action == null || action == undefined) ? ‘/Ajax/GetFiletxt.ashx?fileType=file‘ : action),
                data: {},
                name: ‘myfile‘,
                onSubmit: function (file, ext) {

                //判断文件上传的格式

                  // if (!(ext && /^(rar|zip|pdf|pdfx|txt|csv|xls|xlsx|doc|docx|RAR|ZIP|PDF|PDFX|TXT|CSV|XLS|XLSX|DOC|DOCX)$/.test(ext))) {
                    if (!(ext && /^(txt|TXT)$/.test(ext))) {
                        alert("您上传的文档格式不对,请重新选择!");
                        return false;
                    }
                },
                onComplete: function (file, response) {
                    flagValue = http://www.mamicode.com/response;
                    if (flagValue =http://www.mamicode.com/="1") {
                        alert("您上传的文档格式不对,请重新选择!");
                    }
                    else if (flagValue =http://www.mamicode.com/="2") {
                        alert("您上传的文档大于2M,请重新选择!");
                    }
                    else if (flagValue =http://www.mamicode.com/="3") {
                        alert("文档上传失败!");
                    }
                    else {
                        hidPut.value = http://www.mamicode.com/response;
                        //doc.innerHTML = "<a href=http://www.mamicode.com/‘" + g_AjxTempDir + response + "‘ target=‘_blank‘>" + response + "</a>";
                        doc.innerHTML = response;
                    }
                }
            });
        }

        function DelFile(doc, hidPut) {
            hidPut.valuehttp://www.mamicode.com/= "";
            doc.innerHTML = "<input type=\"text\" disabled=\"disabled\" />";
        }

 

//  ajax  后台

         private string _filedir = "";    //文件目录  
        /// <summary>  
        /// 处理上传文件(1:文件格式不正确、2:文件大小不正确、3:上传失败、文件名称:上传成功)  
        /// </summary>  
        /// <param name="context"></param>  
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            _filedir = context.Server.MapPath(@"/Upload/txt/");
            try
            {
                string result = "3";
                string fileType = context.Request.QueryString["fileType"]; //获取上传文件类型  
                if (fileType == "file")
                {
                    result = UploadFile(context);  //文档上传  
                }
                context.Response.Write(result);
            }
            catch
            {
                context.Response.Write("文件上传失败");//3文件上传失败  
            }
        }
        /// <summary>  
        /// 文档上传  
        /// </summary>  
        /// <param name="context"></param>  
        /// <returns></returns>  
        private string UploadFile(HttpContext context)
        {
            BKS_EquipMentParameter BKE = new BKS_EquipMentParameter();
            int cout = context.Request.Files.Count;
            if (cout > 0)
            {
                HttpPostedFile hpf = context.Request.Files[0];
                if (hpf != null)
                {
                    string fileExt = Path.GetExtension(hpf.FileName).ToLower();
                    //只能上传文件,过滤不可上传的文件类型    

                    //string fileFilt = ".rar|.zip|.pdf|.pdfx|.txt|.csv|.xls|.xlsx|.doc|.docx......";
                    string fileFilt = ".txt ";
                    if (fileFilt.IndexOf(fileExt) <= -1)
                    {
                        return "1";
                    }

                    //判断文件大小    
                    int length = hpf.ContentLength;
                    if (length > 2097152)
                    {
                        return "2";
                    }

                    Random rd = new Random();
                    DateTime nowTime = DateTime.Now;
                    string newFileName = nowTime.Year.ToString() + nowTime.Month.ToString() + nowTime.Day.ToString() + nowTime.Hour.ToString() + nowTime.Minute.ToString() + nowTime.Second.ToString() + rd.Next(1000, 1000000) + Path.GetExtension(hpf.FileName);
                    if (!Directory.Exists(_filedir))
                    {
                        Directory.CreateDirectory(_filedir);
                    }
                    string fileName = _filedir + newFileName;
                    hpf.SaveAs(fileName);


                    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
                    StreamReader sr = new StreamReader(fs, Encoding.UTF8);
                    List<VKS_EquipMentParameter> list = new List<VKS_EquipMentParameter>();
                    //每次读取一条数据
                    string nextLine;
                    //byte[] byEnc;
                    //byEnc = Convert.FromBase64String(sr.ReadLine());
                    string[] str;
                    while ((nextLine = sr.ReadLine()) != null)
                    {
                        VKS_EquipMentParameter ve = new VKS_EquipMentParameter();
                        str = nextLine.Split(‘,‘);
                        ve.Ramcode = str[0].ToString();
                        ve.ColTime = str[1].ToString();
                        ve.Vt = str[2].ToString();
                        ve.Q = str[3].ToString();
                        ve.P = str[4].ToString();
                        ve.T = str[5].ToString();
                        list.Add(ve);
                    }
                    sr.Close();
                    string a;
                    try
                    {
                        if (list.Count > 0)
                        {
                            try
                            {


                                if ((int)BKE.GetRamCodeList(list) > 0)
                                {
                                    // context.Response.Write("<script>alert(‘数据重复‘);</script>");
                                    a = "上传失败,数据重复";

                                }
                                else
                                {
                                    BKE.add(list);
                                    // context.Response.Write("<script>alert(‘导入成功‘);</script>");
                                    a = "导入成功";
                                }
                                return a;
                            }
                            catch (Exception ex)
                            {

                                throw;
                            }

                        }


                    }
                    catch (Exception ex)
                    {
                        context.Response.Write("执行错误");
                        throw;
                    }

                }

            }
            return "3";
        }

文件的导入