在知道JQUREY和微软集成的消息后,在项目里面就开始尽量使用JQUERY了,这个DEMO是一个示例。主要文件两个(另外我还打包了一些漂亮的AJAX处理等待的小图片):
ajaxUpFile.ashx 服务端处理
Default.aspx 用户提交
下面贴出主要代码:
JS部分代码如下
Code
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#代码部分:
Code
/// <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;
}
}
分享到:
相关推荐
asp.net ajax异步上传文件 代码是从一系统中取出来的并作了修改..感觉非常好用,借助此demo还可以实现异步读取信息 验证用户名 更改信息等... 如出现object error错误 请检查function.js submitUrl参数的提交路径...
jquery+jquery.uploadify.js插件,实现无刷新上传文件 支持ie6,模拟进度条(模拟进度条,非正式进度) 无刷新上传 ashx处理.
该程序采用了jquery框架,实现了小文件上传,不超过80Mb,可以在web.config文件中进行相应的配置,但是有个最大值,具体需要查看msdn,下一篇文章我将会实现大文件上传,下一篇文章估计得过段时间,因为接下来这几天...
JQuery ajax的各种使用方法示例和说明 本示例程序由VS2010建立 c# asp.net ajax demo
asp.net 省市县联动选择demo 框架 3.5 基于ajax、js、jquery技术实现
这是一个ASP.NET MVC 1.0 的一个Demo教学程序 语言:C# 开发环境:Visual Studion 2008 SP1 数据库:MSSQL 2005 前台功能:实现发贴、回复、注册、登录 (大部份功能使用jQuery 实现Ajax 操作,也有MVC自带的Ajax...
给一个初学者写的ajax提交表单入库的完整demo,每一行都做了详细的注释,新手一看就会,用jq检测表单是否为空,ajax提交给后端asp页面保存入库,用layer做的弹窗,提示什么没有输入,ajax提交时提示正在等待也是用的...
——轻量级的弹出窗口jQuery插件,压缩后仅仅3.65Kb,基于jQuery1.4.2开发,主要实现弹出框的效果,并且加入了很多有趣的功能,比如callback函数,显示隐藏层,Ajax页面,iframe嵌入页面……
input type=”button” id=”AjaxDemo” value=”AjaxDemo”> 再aspx后台的页面编写一个简单的方法,代码如下: 代码如下: [WebMethod] public static string ABC(string ABC) { return ABC; } 必须声明为静态方法...
ASP.NET MVC1.0 BBS 简易Demo教学版源码 这是一个ASP.NET MVC 1.0 的一个简易Demo教学程序 版本:ASP.NET MVC 1.0 框架:.NET Framework 3.5 SP1 语言:C# 开发环境:Visual Studion 2008 SP1 数据库:MSSQL ...
支持使用ASP.NET MVC Ajax默认的MicrosoftAjax和MicrosoftMvcAjax客户端脚本库实现Ajax分页; 支持使用jQuery实现Ajax分页,生成的Html代码更精简; 支持Ajax分页模式下,若客户端浏览器不支持或禁用Javascript功能...
ZoomImageDemoASP.NET运用AJAX头像图片裁切(仿开心网)用户头像裁切功能,用到了JQuery 1.2,源码包中含有两个版本,其中一个是通用版,另一个是专为VS2005开发的朋友准备的。至于图片裁切功能现在很流行,很多大...
该资源包含了一个使用jquery ajax实现的省市二级联动的简单demo,简单易懂,可以参考博客:http://blog.csdn.net/mockingbirds/article/details/46842327
搜集网上各种上传demo,包括: Ajax-Uploader asp_net_progressbar(IEUpdate) 大文件上传 进度条上传 jquery上传 wcf上传 sl上传
Jqgrid demo-史上最强大,没有之一, 为了大家能够更好的学习和使用Jqgrid网格插件,我决定用Strtus2+Spring+hibernate+Jquery+Jqgrid实现一个Jqgrid网格插件的demo。当然官方网站上面已经有了PHP版本和ASP.NET版本...
Since ASP.NET MVC includes jQuery, I figured it’d be fun to use a jQuery plugin for this demo, so I chose jQuery Grid. After creating a standard ASP.NET MVC project, the first step was to download...
1、依赖文件jquery.js、jquery.unobtrusive-ajax.js。 2、创建部分视图,PartialView主要存放服务器发送过来的数据。 3、一个包含集合数据的viewmodel. 部分视图代码基本如下: asp.net怎样进行mvc异步查询? ...
How to apply and extend the MVC patterns to real world solutions: adding AJAX and jQuery, validation and securing user data, testing and deploying the finished application. All of these are discussed...
代码下载 说明:数据库连接字符串在web.config文件中,为方便运行使用的是官方的Northwind数据库。 参考(向其作者致敬): ² http://www.loveweb8.com/plus/demo.php?aid=57这个例子是html源码。利用jquery....