jquery ajax 上传文件 读取电子表格 前后端

<input type="file" id="file1" name="file1" />

$("#file1").change(function () {           
            
            var file = $('#file1')[0].files;//原生的js上files属性存放着input选中的文件数据
            if (file.lenght <= 0) return alert('请选择文件上传')//判断是否选择文件上传
            var formdata = new FormData();//实例化一个formdata对象
            //FormData 接口提供了一种表示表单数据的键值对 key/value 的构造方式
            formdata.append('avatar', file[0]);//通过formdata上的append()方法来追加数据
            $.ajax({
                url: '../PanDian/sctp',//请求访问的地址
                type: 'post',//请求访问方式
                data: formdata,//数据在这里
                processData: false,//true会将传递的数据以字符串形式上传,false则不会转换,原样上传
                contentType: false,//true默认会将发送数据的格式转换成字符串,false则会禁止默认行为
                success: function (res) {
                    console.log(res)
                }
            })
           
        });

static object locker1 = new object();
        public JsonResult sctp()
        {
            string r1 = "";
            lock (locker1)
            {
                string code = "";
                string msg = "";
                string img = "";
                string thumb = "";
                try
                {
                    HttpPostedFileBase file1 = Request.Files[0];
                    if (file1 == null)
                    {
                        code = "0";
                        msg = "未找到上传的文件!";
                    }
                    else
                    {
                        string n1 = file1.FileName;
                        n1 = n1.ToLower();
                        FileInfo fi = new FileInfo(n1);
                        string n2 = "";
                        int n3 = n1.IndexOf(".");
                        if (n3 > 0)
                        {
                            n2 = n1.Substring(0, n3);
                        }
                        else
                        {
                            n2 = n1;
                        }
                        string kzm = fi.Extension;
                        kzm = kzm.ToLower();
                        if (kzm == ".xls" || kzm == ".xlsx"  )
                        {
                            string wjj = DateTime.Now.ToString("yyyyMMdd");
                            if (Directory.Exists(Server.MapPath("../UploadFile/jkm_temp/" + wjj)) == false)//如果不存在就创建file文件夹
                            {
                                Directory.CreateDirectory(Server.MapPath("../UploadFile/jkm_temp/" + wjj));
                            }
                            if (Directory.Exists(Server.MapPath("../UploadFile/jkm/" + wjj)) == false)//如果不存在就创建file文件夹
                            {
                                Directory.CreateDirectory(Server.MapPath("../UploadFile/jkm/" + wjj));
                            }
                            string wjm = DateTime.Now.ToString("HHmmssfff") + 3;
                            string file3 = "../UploadFile/jkm_temp/" + wjj + "/" + wjm + kzm;
                            file1.SaveAs(Server.MapPath(file3));
                            r1 = "../UploadFile/jkm_temp/" + wjj + "/" + wjm + kzm;
                            string r3 = r1.Replace("..", "~");
                            string r2 = "~/UploadFile/jkm/" + wjj + "/" + wjm + kzm;
                            string r4 = "../UploadFile/jkm/" + wjj + "/" + wjm + kzm;
                            string r5 = r2.Replace(".", "m.");
                           
                            code = "1";
                            msg = "上传成功!";
                            
                        }
                        else
                        {
                            code = "0";
                            msg = "文件后缀不正确!";
                        }
                    }

                }
                catch (Exception e1)
                {
                    string r10 = e1.Message;
                    code = "0";
                    msg = r10;
                }
                return Json(new { code = code, msg = msg, img = img, thumb = thumb }, JsonRequestBehavior.AllowGet);
            }
        }

//在nuget添加Spire.Xls

using Spire.Xls;

private Model.sys.return1 dr1(string userid,int pdid,string fileName)
        {
            Model.sys.return1 r1 = new Model.sys.return1();
            r1.code = "";
            r1.msg = "";
            Workbook wb = new Workbook();
            List<Model.pandian.pandian_kucun_mx> list_datas1 = new List<Model.pandian.pandian_kucun_mx>();

            try
            {
                wb.LoadFromFile(@fileName);
                for (int i = 1; i < wb.Worksheets[0].Rows.Count(); i++)
                {
                    var row = wb.Worksheets[0].Rows[i];
                    string[] rows = new string[25];
                    for (int i1 = 0; i1 < 7; i1++)
                    {
                        rows[i1] = row.Cells[i1].Value.ToString().Trim();
                    }
                    if (rows[1] == null || rows[1] == "")
                    {
                        break;
                    }
                    else
                    {
                        Model.pandian.pandian_kucun_mx m_d = new Model.pandian.pandian_kucun_mx();
                       
                        m_d.wzbm = rows[1].Trim();                       
                        m_d.wzmc = rows[2].Trim();
                        m_d.ggxh = rows[3].Trim();
                        m_d.jldw = rows[4].Trim();
                        decimal jhdj = 0;
                        decimal sl = 0;
                        decimal.TryParse(rows[5].Trim(),out  jhdj);
                        decimal.TryParse(rows[6].Trim(), out sl);
                        m_d.create_userid = userid;
                        m_d.pandian_id = pdid;
                        m_d.jhdj = jhdj;
                        m_d.kcsl = sl;
                        if (m_d.wzbm != "" && m_d.kcsl >0)
                        {
                            list_datas1.Add(m_d);
                        }
                    }
                }
                List<Model.pandian.pandian_kucun_mx> list_old = Common.freeSqlHelper.fsqlDb.Select<Model.pandian.pandian_kucun_mx>().Where(a => a.pandian_id == pdid && a.create_userid == userid).ToList();
                List<Model.pandian.pandian_kucun_mx> list_add = new List<Model.pandian.pandian_kucun_mx>();
                List<Model.pandian.pandian_kucun_mx> list_edit = new List<Model.pandian.pandian_kucun_mx>();
                for(int i = 0; i < list_datas1.Count; i++)
                {
                    bool b = false;
                    for (int i1 = 0; i1 < list_old.Count; i1++)
                    {
                        if (list_old[i1].wzbm.Trim() == list_datas1[i].wzbm.Trim())
                        {
                            b = true;
                            break;
                        }
                    }
                    if (b)
                    {
                        list_edit.Add(list_datas1[i]);
                        
                    }
                    else
                    {
                        list_add.Add(list_datas1[i]);
                        list_old.Add(list_datas1[i]);
                    }
                }
                long add1 = 0;
                long edit1 = 0;
                if (list_add.Count > 0)
                {
                    add1 = Common.freeSqlHelper.fsqlDb.Insert(list_add).IgnoreColumns(a => a.ID).ExecuteAffrows(); //批量插入
                }
                for(int i = 0; i < list_edit.Count; i++)
                {
                    edit1+= Common.freeSqlHelper.fsqlDb.Update<Model.pandian.pandian_kucun_mx>()
                            .Set(a => new Model.pandian.pandian_kucun_mx { kcsl= list_edit[i].kcsl })//多个字段信息修改
                            .Where(a => a.create_userid==userid && a.pandian_id==pdid && a.wzbm==list_edit[i].wzbm).ExecuteAffrows();
                }
                if (add1 > 0 || edit1 > 0)
                {
                    r1.code = "1";
                    r1.msg = "本次导入物资,新增" + add1 + "条记录,编辑" + edit1 + "条记录。";
                }
                else
                {
                    r1.code = "0";
                    r1.msg = "本次未导入库存记录!";
                }
                

            }
            catch (Exception ex)
            {
                r1.code = "0";
                r1.msg = ex.Message;
            }
            return r1;
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个 jQuery AJAX 下载文件的前后端代码示例: 前端代码: ```javascript $("#downloadBtn").click(function(){ $.ajax({ url: "/downloadFile", type: "POST", dataType: "json", success: function(response){ if(response && response.success){ // 下载成功 var downloadUrl = response.data.downloadUrl; window.location.href = downloadUrl; } else { // 下载失败 alert("下载失败!"); } }, error: function(){ // 下载失败 alert("下载失败!"); } }); }); ``` 后端代码(假设使用 Node.js + Express): ```javascript const express = require('express'); const app = express(); const path = require('path'); app.post('/downloadFile', function(req, res){ // 假设这里生成了一个下载链接 const downloadUrl = "http://www.example.com/download/sample.pdf"; // 返回下载链接 res.json({ success: true, data: { downloadUrl: downloadUrl } }); }); // 下载文件的路由 app.get('/download', function(req, res){ const fileUrl = req.query.fileUrl; const fileName = path.basename(fileUrl); // 设置响应头,告诉浏览器下载文件 res.setHeader('Content-disposition', 'attachment; filename=' + fileName); res.setHeader('Content-type', 'application/octet-stream'); // 发送文件流 const fileStream = request.get(fileUrl); fileStream.pipe(res); }); app.listen(3000, function(){ console.log('Server listening on port 3000.'); }); ``` 在这个示例中,前端通过 AJAX 发送一个 POST 请求到 `/downloadFile` 接口,后端返回一个带有下载链接的 JSON 对象。前端接收到这个 JSON 对象后,通过修改浏览器的 `window.location.href` 实现下载文件。后端还提供了一个 `/download` 接口,当浏览器请求这个接口时,后端会发送文件流给浏览器,实现文件下载。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值