<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>
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);
}