asp.net使用百度的webuploader批量上传图片
2015-07-20 10:45
627 查看
各位想必是在百度下载webuploader后,看官方的demo并没有看明白才搜到这里来的吧。
我也是,我将搜索的结果做了整理,大家互相学习进步。
下载下来的是一个php的写的,asp.net的服务器端得自己重新写一个服务,将下载的代码进行如下修改(这里使用的是demo中的examples/image-upload/upload.js):
找到154行,将图片上传地址修改为.net的一般处理程序的请求地址
修改为您的一般处理程序地址
好了,到这里我们将upload.js修改完成了,如果你要使用到自己的项目中,还需要修改
首先,找到109行的代码
修改为您的flash地址:
其次,找到151行,在实例化的时候修改用于上传flash的地址:
最后,如果你有自己的预览的服务器,还需要修改代码地址(我没有写不影响文件上传)
修改为您的一般处理程序的预览地址
下面就是写了处理程序了,在项目中server文件夹添加以下两个文件fileupload.ashx和preview.ashx。
下面主要介绍fileupload.ashx的实现方法
如有问题,请留言交流。
tip:private void SaveFile(string basePath = "~/Upload/Images/")这句代码应该只有.net4.0才支持。
我也是,我将搜索的结果做了整理,大家互相学习进步。
下载下来的是一个php的写的,asp.net的服务器端得自己重新写一个服务,将下载的代码进行如下修改(这里使用的是demo中的examples/image-upload/upload.js):
找到154行,将图片上传地址修改为.net的一般处理程序的请求地址
server: '../../server/fileupload.php',
修改为您的一般处理程序地址
server: '../../server/fileupload.ashx',
好了,到这里我们将upload.js修改完成了,如果你要使用到自己的项目中,还需要修改
首先,找到109行的代码
var swf = './expressInstall.swf';
修改为您的flash地址:
var swf = '../image/expressInstall.swf';
其次,找到151行,在实例化的时候修改用于上传flash的地址:
swf: '../../dist/Uploader.swf',修改为您的
swf: '../image/Uploader.swf',
最后,如果你有自己的预览的服务器,还需要修改代码地址(我没有写不影响文件上传)
$.ajax('../../server/preview.php', {
修改为您的一般处理程序的预览地址
$.ajax('./server/preview.ashx', {
下面就是写了处理程序了,在项目中server文件夹添加以下两个文件fileupload.ashx和preview.ashx。
下面主要介绍fileupload.ashx的实现方法
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Text; namespace FileUpload.server { /// <summary> /// Summary description for fileupload /// </summary> public class fileupload : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //指定字符集 context.Response.ContentEncoding = Encoding.UTF8; if (context.Request["REQUEST_METHOD"] == "OPTIONS") { context.Response.End(); } SaveFile(); } /// <summary> /// 文件保存操作 /// </summary> /// <param name="basePath"></param> private void SaveFile(string basePath = "~/Upload/Images/") { var name = string.Empty; basePath = (basePath.IndexOf("~") > -1) ? System.Web.HttpContext.Current.Server.MapPath(basePath) : basePath; HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; //如果目录不存在,则创建目录 if (!Directory.Exists(basePath)) { Directory.CreateDirectory(basePath); } var suffix = files[0].ContentType.Split('/'); //获取文件格式 var _suffix = suffix[1].Equals("jpeg",StringComparison.CurrentCultureIgnoreCase) ? "" : suffix[1]; var _temp = System.Web.HttpContext.Current.Request["name"]; //如果不修改文件名,则创建随机文件名 if (!string.IsNullOrEmpty(_temp)) { name = _temp; } else { Random rand = new Random(24 * (int)DateTime.Now.Ticks); name = rand.Next() + "." + _suffix; } //文件保存 var full = basePath + name; files[0].SaveAs(full); var _result = "{\"jsonrpc\" : \"2.0\", \"result\" : null, \"id\" : \"" + name + "\"}"; System.Web.HttpContext.Current.Response.Write(_result); } public bool IsReusable { get { return false; } } } }如有需求,需要修改一下上传位置和上传文件保存文件名等个人设置。
如有问题,请留言交流。
tip:private void SaveFile(string basePath = "~/Upload/Images/")这句代码应该只有.net4.0才支持。
相关文章推荐
- kindeditor 批量上传 上传失败 thinkphp swfupload session
- C#.NET获取拨号连接的宽带连接方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- .net(c#)中的new关键字详细介绍
- 由vbs sort引发.NET Framework之间的关系说明
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- .NET中的async和await关键字使用及Task异步调用实例
- .Net中的json操作类用法分析
- .net实现序列化与反序列化实例解析
- .NET中的Timer类型用法详解
- 关于.net(C#)中的跨进程访问的问题
- .NET实现父窗体关闭而不影响子窗体的方法
- 基于.Net中的数字与日期格式化规则助记词的使用详解
- .NET微信公众号开发之公众号消息处理
- .Net下的签名与混淆图文分析
- .NET 扩展实现代码
- .net实现文件读写的几种常用方法
- .net文件上传时实现通过文件头确认文件类型的方法
- 四个常用的.NET的SQLHELPER方法实例
- .net中前台javascript与后台c#函数相互调用问题