jQuery+ASP.NET的AJAX文件上传

简介:

ajaxUpFile.ashx 服务端处理

Default.aspx 用户提交

下面贴出主要代码:
JS部分代码如下
function TestUp()
{
ajaxFileUpload("FileUpload1");
}

function ajaxFileUpload(obfile_id)
{
//准备提交处理
$("#loading_msg").html("<img src=/images/DotAjax.gif />");

//开始提交
$.ajax
({
type: "POST",
url:"ajaxUpFile.ashx",
data:"upfile="+$("#"+obfile_id).val(),
success:function (data, status)

//alert(data);
var stringArray = data.split("|");
if(stringArray[0]=="1")
{
//stringArray[0] 成功状态(1为成功,0为失败)
//stringArray[1] 上传成功的文件名
//stringArray[2] 消息提示
$("#divmsg").html("<img src=/images/note_ok.gif />"+stringArray[2]+" 文件地址:"+stringArray[1]);
$("#filepreview").attr({ src:stringArray[1]});

else
{
//上传出错
$("#divmsg").html("<img src=/images/note_error.gif />"+stringArray[2]+"");
}

$("#loading_msg").html("");
},
error:function (data, status, e)
{
alert("上传失败:"+e.toString());
}
});
return false; //.NET按钮控件取消提交
}

C#代码部分:
/// <summary>
/// 上传文件 方法
/// </summary>
/// <param name="fileNamePath"></param>
/// <param name="toFilePath"></param>
/// <returns>返回上传处理结果 格式说明: 0|file.jpg|msg 成功状态|文件名|消息 </returns>
public string UpLoadFile(string fileNamePath, string toFilePath)
{
try
{
//获取要保存的文件信息
FileInfo file = new FileInfo(fileNamePath);
//获得文件扩展名
string fileNameExt = file.Extension;

//验证合法的文件
if (CheckFileExt(fileNameExt))
{
//生成将要保存的随机文件名
string fileName = GetFileName() + fileNameExt;
//检查保存的路径 是否有/结尾
if (toFilePath.EndsWith("/") == false) toFilePath = toFilePath + "/";

//按日期归类保存
string datePath = DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("dd") + "/";
if (true)
{
toFilePath += datePath;
}

//获得要保存的文件路径
string serverFileName = toFilePath + fileName;
//物理完整路径 
string toFileFullPath = HttpContext.Current.Server.MapPath(toFilePath);

//检查是否有该路径 没有就创建
if (!Directory.Exists(toFileFullPath))
{
Directory.CreateDirectory(toFileFullPath);
}

//将要保存的完整文件名 
string toFile = toFileFullPath + fileName;

///创建WebClient实例 
WebClient myWebClient = new WebClient();
//设定windows网络安全认证 方法1
myWebClient.Credentials = CredentialCache.DefaultCredentials;
////设定windows网络安全认证 方法2
//NetworkCredential cred = new NetworkCredential("UserName", "UserPWD");
//CredentialCache cache = new CredentialCache();
//cache.Add(new Uri("UploadPath"), "Basic", cred);
//myWebClient.Credentials = cache;

//要上传的文件 
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
//FileStream fs = OpenFile(); 
BinaryReader r = new BinaryReader(fs);
//使用UploadFile方法可以用下面的格式 
//myWebClient.UploadFile(toFile, "PUT",fileNamePath); 
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(toFile, "PUT");
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
}
else
{
return "0|" + serverFileName + "|" + "文件目前不可写";
}
postStream.Close();


return "1|" + serverFileName + "|" + "文件上传成功";
}
else
{
return "0|errorfile|" + "文件格式非法";
}
}
catch (Exception e)
{
return "0|errorfile|" + "文件上传失败,错误原因:" + e.Message;
}
}


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1081625


相关文章
N..
|
30天前
|
XML JSON 前端开发
jQuery实现Ajax
jQuery实现Ajax
N..
18 1
|
2月前
|
开发框架 前端开发 .NET
ASP.NET WEB——项目创建与文件上传操作
ASP.NET WEB——项目创建与文件上传操作
46 0
|
3月前
|
开发框架 JSON JavaScript
ASP.NET Core3.1实战教程---基于Jquery单文件上传
ASP.NET Core3.1实战教程---基于Jquery单文件上传
26 0
|
4月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
60 0
|
1月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
174 2
|
2月前
|
JavaScript 前端开发 Java
jquery ajax+spring mvc上传文件
jquery ajax+spring mvc上传文件
|
3月前
|
前端开发 JavaScript
Jquery ajax捕获错误信息
Jquery ajax捕获错误信息
16 0
|
3月前
|
JSON 缓存 前端开发
Jquery中AJAX的应用
Jquery中AJAX的应用
43 0
|
4月前
|
JSON 前端开发 JavaScript
jQuery中ajax的使用
jQuery中ajax的使用
|
4月前
|
XML JavaScript 前端开发
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
52 0