上传文档

        <div style="width:330px;float:left;">
                            <input id="accList" name="accList" type="text" style="width:315px" class="form-control" placeholder="请填写玩家账号ID(多个userid输入,隔开)" />
                        </div>
                        <div style="width:160px;float:left;">
                            <input type="file" id="filePicture" class="form-control" οnchange="uploadFile()" name="filePicture" />
                        </div>

        $("#btnUpload").click(function () {
            if ($("#filePicture").val() == "") { $.modalAlert("请选择你要上传的文件", "error"); return; }
            $.ajaxFileUpload({
                url: "/AjaxUpload", //用于文件上传的服务器端请求地址
                type: "post",
                secureuri: false, //一般设置为false
                fileElementId: "filePicture", //文件上传空间的id属性
                dataType: "json", //返回值类型 一般设置为json
                success: function (data, status) {  //服务器成功响应处理函数
                   
                    $("#txtUpload").val(data.FilePath);
                    $.modalAlert("上传成功", "success");
                },
                error: function (data, status, e) {  //服务器响应失败处理函数
                    $.modalAlert("上传失败,必须是.txt文本格式。文本内容必须是userid,用,隔开。", "error");
                }
            });
        });

public ActionResult AjaxUpload()

        {
            HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
            if (files.Count == 0) return Json("Faild", JsonRequestBehavior.AllowGet);
            MD5 md5Hasher = new MD5CryptoServiceProvider();
            /*计算指定Stream对象的哈希值*/
            byte[] arrbytHashValue = md5Hasher.ComputeHash(files[0].InputStream);
            /*由以连字符分隔的十六进制对构成的String,其中每一对表示value中对应的元素;例如“F-2C-4A”*/
            string strHashData = System.BitConverter.ToString(arrbytHashValue).Replace("-", "");
            string FileEextension = Path.GetExtension(files[0].FileName);


            if (FileEextension != ".txt")
            {
                return Json("上传失败,上传的文件必须是txt格式", JsonRequestBehavior.AllowGet);
                //return Json(new { FileName = fileName, FilePath = FilePath, FileSize = fileSize }, "text/html", JsonRequestBehavior.AllowGet);
            }


            string uploadDate = DateTime.Now.ToString("yyyyMMddHHmmss");
            string virtualPath = string.Format("../../UploadFile/{0}/{1}{2}", uploadDate, strHashData, FileEextension);
            string fullFileName = Server.MapPath(virtualPath);


            //创建文件夹,保存文件  
            string path = Path.GetDirectoryName(fullFileName);
            Directory.CreateDirectory(path);
            if (!System.IO.File.Exists(fullFileName))
            {
                files[0].SaveAs(fullFileName);
            }
            string fileName = files[0].FileName.Substring(files[0].FileName.LastIndexOf("\\") + 1, files[0].FileName.Length - files[0].FileName.LastIndexOf("\\") - 1);
            string fileSize = GetFileSize(files[0].ContentLength);


            //验证文件内容是否正确
            string FilePath = string.Format(Configs.GetValue("UploadAddress") + "{0}/{1}", uploadDate, strHashData + FileEextension);
            string result = FileHelper.ReadTxtFileToStr(FilePath);
            List<string> uidList = new List<string>();


            try
            {
                string[] ul = result.Split(',');
                foreach (var item in ul)
                {
                    try
                    {
                        Convert.ToInt64(item);
                    }
                    catch (Exception e)
                    {
                        return Json("解析失败,上传的文件内容格式有误(必须是帐号userid,用,隔开(半角逗号))", JsonRequestBehavior.AllowGet);
                    }
                }


                uidList = GetSubList(result);
                if (uidList.Count == 0) { return Json("上传的文件内容为空", JsonRequestBehavior.AllowGet); }
            }
            catch (Exception e)
            {
                return Json("解析失败,上传的文件格式有误", JsonRequestBehavior.AllowGet);
            }


            return Json(new { FileName = fileName, FilePath = FilePath, FileSize = fileSize }, "text/html", JsonRequestBehavior.AllowGet);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值