uploadify-无刷新图片批量上传插件-.net 下批量上传图片并且保存数据到数据库
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

前段时间做项目,后台管理中要用到图片批量上传,在网上搜索了一下,发现一般都是用的 flash 上传插件,不外乎就是 swfupload 与 uploadify 等。网上的例子大多讲到了怎么实现批量上传而没说明用到后台管理上要怎么同时更新数据库。
琢磨了半天在某网站看到一句话而豁然开朗。暂时采用的变通方法如下:
1.workadd.aspx 页面(作品添加页面,包含作品名称,作者,作品内容等)。
本页面中的作品内容一栏要求一次选取多张图片,批量上传。
前台部分代码:
head 处代码(注意引用路径):
<link h="/uploadify/uploadify.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="/uploadify/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="/uploadify/swfobject.js"></script> <script type="text/javascript" src="/uploadify/jquery.uploadify.v2.1.4.min.js"></script>body 中作品内容处代码(注意引用路径):
<div class="wrapper"> <div id="fileInput1"> </div> </div> <script type="text/javascript"> $("#fileInput1").uploadify({ 'uploader': '/uploadify/uploadify.swf', 'script': '<%=temp %>', 'cancelImg': /uploadify/cancel.png', 'fileExt': '*.jpg;*.gif;*.png', 'fileDesc': 'Image Files', 'auto': true, 'multi': true }); </script> 此处的 js 都按照正常配置即可,注意路径要写准确了,需要注意的是‘script’:‘<%=temp%>’这里,这里是指定处理上传的文件路径的,一般为 upload.ashx/upload.aspx 等等。
这里这样写是要在后台给动态生成个带唯一参数的路径。
后台部分代码:
page_load:
public string temp = "upload.aspx?sn=0"; DataSet ds = new DataSet(); protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { txt_CaseTime.Text = System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); string sn = lbl_ID.Text = System.DateTime.Now.ToString("yyyyMMddhhmmss"); temp = "upload.aspx?sn=" + sn; } }此处代码是动态生成带唯一参数的路径,这个参数要在使用 upload.aspx 批量上传图片时用到。我图省事就直接获取系统时间生成个唯一参数。
完整信息(就是作品名称,作品信息都填完后的)提交事件:
string s_Content = null; ds = DbHelperOleDb.Query("select * from [temp] where temp_sn='"+ lbl_ID.Text + "'"); if (ds != null && ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { s_Content = ds.Tables[0].Rows[i][1].ToString() +"|"+ s_Content ; } } }这块代码要结合下面的 2.upload.aspx 代码解释,就是在 upload.aspx 页面把处理完图片批量上传,并把每一张图片作为一条记录加上统一的唯一的参数 sn 做为 ID 插入到临时 temp 表中之后。
本页面再按照 page_load 中生成的唯一参数 sn 去 temp 临时表中去读取该 sn 下的记录然后循环写成一个字段插入到 work 表中~
2.upload.aspx 页面(与 flash 插件结合处理图片批量上传)
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Data.OleDb; using System.IO; public partial class m_admin_files_upload : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string sn = Request.QueryString["sn"].ToString(); if (sn.Length > 14) sn = sn.Substring(0,14); try { //获取上传的文件数据 HttpPostedFile file = Request.Files["Filedata"]; string fileName = file.FileName; string fileType = Path.GetExtension(fileName).ToLower(); //由于不同浏览器取出的 FileName 不同(有的是文件绝对路径,有的是只有文件名),故要进行处理 if (fileName.IndexOf(' ') > -1) { fileName = fileName.Substring(fileName.LastIndexOf(' ') + 1); } else if (fileName.IndexOf('/') > -1) { fileName = fileName.Substring(fileName.LastIndexOf('/') + 1); } //上传的目录 string uploadDir = "~/uploadfile/" + System.DateTime.Now.ToString("yyyyMM") + "/"; //上传的路径 if (Directory.Exists(Server.MapPath(uploadDir)) == false) { Directory.CreateDirectory(Server.MapPath(uploadDir)); } if (Directory.Exists(Server.MapPath(uploadDir + System.DateTime.Now.ToString("dd") + "/")) == false) { Directory.CreateDirectory(Server.MapPath(uploadDir + System.DateTime.Now.ToString("dd") + "/")); } uploadDir = uploadDir + System.DateTime.Now.ToString("dd") + "/"; string uploadPath = uploadDir + MD5.strToMD5(fileName).Substring(0,8) + fileType; //保存文件 file.SaveAs(Server.MapPath(uploadPath)); //下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失 DbHelperOleDb.ExecuteSql("insert into [temp](temp_sn,temp_Content) values('" + sn + "','" + uploadPath + "')"); //Response.Write("1"); } catch { //Response.Write("0"); } } }其实这个只是在官方 DEMO 的基础上增加了一点小功能,获取 workadd.aspx 中 flash 插件批量上传事件触发后传来的唯一参数 sn,并且把每一张图片与 sn 都作为一条独立的记录存储到临时表 temp 中。这样就实现了.NET 下使用 uploadify 无刷批量上传图片并且保存数据到数据库的功能了。
这是站长在 2011 年发表在博客园的一篇原创文章,后来工作忙也就不再写博客了,最近又翻出来发现这么多年过去仍然有人在求 demo,而原来提供的 demo 下载地址已经失效了,所以就转帖到 IT 零五,并且重新提供 DEMO 下载链接,如果有什么疑问你可以在文章下方留言,我每天都会看这个网站。
点击下载.net 下 uploadify 无刷新批量上传图片并且保存数据到数据库 DEMO,解压密码:it.02405.com
猜你可能想看的VPS
- bacloud→8.5 折优惠 1Gbps 不限流量 VPS 除美国 立美国VPS[主机]
- ZJI→香港葵湾服务器特惠 6 折 450 元起 香港站群服务器每月 1站群服务器[IP]
- racknerd→“老板生日促销+送红包” $15.88 年 KVM 1全球[VPS测评]
- Vultr 新增 3.5 美元方案 1 核 512MB 内存 20GB 日本VPS[主机]
- layer 子窗体关闭后向父窗体传值的办法全球[VPS测评]
- 特价服务器 hostsolutions→2*E5-2450 32G 48全球[VPS测评]
- W3Space→$15 年 1GB 内存 25GB SSD 空间 1.5虚拟空间(主机)
- [11.11]恒创科技香港云服务器 独立服务器 4 折起 充值最高返 1独立服务器[U]
- 做站推荐 微基主机→香港沙田机房无限流量 VPS 上架 首月 3 折 年香港VPS[主机]
- MoeCloud→129 元 月 2GB 内存 1TB 硬盘 不限流量 全球[VPS测评]
- 数据湾→香港日本新加坡美国独立服务器促销 香港独服 550 元 月 I3独立服务器[U]
- ChangeIP - 100Mbps 不限流量洛杉矶 KVM VPS 8全球[VPS测评]
- 特价 LOCVPS→新上香港将军澳大带宽 VPS 德国 CN2 线路 V香港VPS[主机]
- GigsGigsCloud→CLOUDLET K 系列香港大带宽每月 8香港VPS[主机]
- Rainbow Cloud→$50 月 E3-12XX 16G 内存 1香港VPS[主机]
- WordPress基于WPJAM BASIC开发的免费主题:Autumn全球[VPS测评]
- 腾讯云新春采购节2019 - 每天五场2折秒杀/满减代金券/云产品三折全球[VPS测评]
- RackNerd 8月底促销1.5G NVMe 硬盘 最高6T 流量 年全球[VPS测评]
- idc.wiki 1核心 1G内存 15G SSD 700G流量 30M全球[VPS测评]
- 数字化东风已来,亚马逊云科技跨境电商合作企业招募大会即将开启全球[VPS测评]
- 租用美国服务器有哪些安全方案美国VPS[主机]
- 加拿大以“国安”为由禁止华为、中兴参与5G建设全球[VPS测评]
- 碳氧云,香港vps路由调整为沙田cn2,特价款6核6G仅80元/月香港VPS[主机]
- 做跨境电商,如何打造私域流量?全球[VPS测评]
- 亚当云怎么样?香港安畅cn2vps带宽10M月付28元香港VPS[主机]
- 消费复苏形势良好,我们将多措并举实施扩大内需政策全球[VPS测评]
- vpsplayer:新年活动_vps全部7.5折起_深圳BGP/美西Ce香港VPS[主机]
- 磐逸云:深圳/大连/成都/香港机房vps,1核1G3M仅26元/月,65香港VPS[主机]
- CubeCloud,靠谱的香港cn2vps,美国cn2终身九折,原生IP美国VPS[主机]
- 九零云怎么样?香港将军澳VPS,美国圣何塞VPS 2核1G10M 47/美国VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-220755.html











