在知道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;
}
}
分享到:
相关推荐
"Demo"目录很可能是各种示例代码,展示如何在ASP.NET项目中集成和使用jQuery,通过实际操作理解两者结合的用法。"Jumbot.DataOper"可能涉及数据库操作,利用jQuery进行AJAX请求与ASP.NET的后台数据库交互,进行数据...
ASP.NET、jQuery 和 AJAX 结合使用可以创建动态、无刷新的网页应用,使得用户在上传文件时无需等待页面重新加载,提升用户体验。本教程通过一个名为 "jquery.uploadify.js" 的插件,演示了如何在 ASP.NET 环境下实现...
asp.net ajax异步上传文件 代码是从一系统中取出来的并作了修改..感觉非常好用,借助此demo还可以实现异步读取信息 验证用户名 更改信息等... 如出现object error错误 请检查function.js submitUrl参数的提交路径...
综上所述,这个项目是一个综合性的企业网站演示,利用了Spring.NET、NHibernate、ASP.NET MVC、jQuery 和 easyUI 这些技术栈,展示了如何将开源框架整合在一起,构建一个中英文双语的小型企业网站。通过学习这个项目...
5. **AJAX技术**:为了实现无刷新的用户体验,项目可能使用了ASP.NET的AJAX扩展,或者纯JavaScript的异步请求,将裁剪结果发送到服务器进行处理和保存。 6. **图像处理库**:在后端,可能使用了.NET框架中的System....
**jQuery EasyUI与ASP.NET整合应用详解** 在Web开发领域,jQuery EasyUI和ASP.NET的结合使用能够快速构建出功能丰富的交互式用户界面。本文将深入解析如何利用这两个技术进行项目开发,尤其适合初学者快速掌握系统...
在这个场景下,`jQuery Uploadify`插件是一个非常实用的工具,它为ASP.NET开发者提供了一个简单易用的前端文件上传解决方案。本文将详细探讨如何在ASP.NET环境中结合jQuery Uploadify实现文件和图片的批量上传。 ...
这个“asp.net中ajax基本demo”应该是提供了一个简单的示例,演示了如何在ASP.NET环境中使用Ajax进行异步数据操作,如增、删、改、查。下面我们将深入探讨相关的知识点。 首先,让我们了解Ajax的核心概念。Ajax...
- 部署时,可以使用Vue.js的构建工具(如Vue CLI)对应用进行编译和优化,生成生产环境的静态文件,然后将这些文件部署到ASP.NET服务器上。 - 利用ASP.NET的缓存机制,可以提高API的响应速度,减少不必要的数据库...
在这个"ASP.NET2.0 Ajax组件DEMO"中,我们重点关注的是使用Ajax技术来提升用户体验的部分。Ajax,即Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,它可以实现...
虽然Asp.net AJAX提供了丰富的功能,但开发者也可以选择使用jQuery或其他JavaScript库来实现AJAX功能。通过ScriptManager的RegisterStartupScript或RegisterClientScriptBlock方法,可以将这些库引入到ASP.NET页面中...
在ASP.NET中,我们通常使用ASP.NET AJAX控件工具包或jQuery库中的FileUpload插件来实现异步上传。在这个UploadDemo中,可能是通过创建一个隐藏的iframe,配合JavaScript或jQuery的Ajax功能来处理文件上传的异步操作...
在Asp.Net MVC中,使用jQuery和AJAX进行文件上传需要额外的插件,如jQuery Form Plugin。这个插件可以处理表单提交,包括文件上传。 七、异常处理和验证 在AJAX请求中,我们可以利用ASP.NET MVC的Validation ...
"ASP.NET 带进度条上传 DEMO"是一个实例,演示了如何在ASP.NET环境中实现在上传大文件时显示进度条,为用户提供更好的交互体验。 首先,文件上传在ASP.NET中通常通过HttpPostedFileBase对象来处理。在表单中,我们...
在Asp.net中,我们可以使用多种方式实现Ajax分页,如jQuery的Ajax功能、ASP.NET AJAX Control Toolkit中的Paging控件,或者自定义Ajax分页组件。这里我们将主要讨论使用jQuery Ajax和Asp.net MVC或Web Forms的方式。...
此Demo旨在展示如何利用SlideShowExtender控件在ASP.NET AJAX环境中创建一个功能完备的相册播放器。 首先,ASP.NET AJAX是微软提供的一个框架,它扩展了ASP.NET,引入了异步处理机制,使得Web应用程序可以像桌面...
该程序采用了jquery框架,实现了小文件上传,不超过80Mb,可以在web.config文件中进行相应的配置,但是有个最大值,具体需要查看msdn,下一篇文章我将会实现大文件上传,下一篇文章估计得过段时间,因为接下来这几天...
本示例“asp.net 批量上传图片demo”是基于.NET框架3.5开发的一个实例,它实现了用户可以一次性上传多张图片,并且在上传过程中提供图片预览功能,还特别强调了对大图上传的支持。以下将详细讲解这个知识点。 1. **...
在这个"文章管理系统demo"中,我们可以深入理解ASP.NET MVC的核心概念和技术。它是一个Content Management System(CMS)的示例,展示了如何利用MVC模式来管理文章数据。 1. **MVC模式**:MVC(Model-View-...