实现多张图片的上传

xuyizhou898 2014-09-05 10:32:53
由于客户项目需求
网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行

所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先
...全文
18281 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33904714 2016-07-20
  • 打赏
  • 举报
回复
同求:295123310@qq.com
qq_29814225 2016-05-04
  • 打赏
  • 举报
回复
315412040@qq.com 求大神给多图上传源码
拜一刀 2015-02-04
  • 打赏
  • 举报
回复
引用 21 楼 zeratul1990 的回复:
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html 前几天刚看到的
多张能上传,上千张?程序又不是神,不挨个点他哪知道传哪个,挨个改名字更费劲.压缩起来,然后再服务器上调用个什么程序解压?或者都放进一个文件夹里,到时候直接ctrl+A?
  • 打赏
  • 举报
回复
能想到“现在使用的是用一个一个fileupload一次次地选择一张张来同时上传”的技术的程序员,我想它的出发点一点也没有从应该注重的“操作体验”出发,这种解决方案真是让人看醉了。
  • 打赏
  • 举报
回复
要问网站“时不时需要上传千张图片”技术哪家强,找顺风发快递最强。
拜一刀 2015-02-04
  • 打赏
  • 举报
回复
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html 前几天刚看到的
於黾 2015-02-04
  • 打赏
  • 举报
回复
第三方控件, 或者传rar之后服务端解压
hhj_2679464683 2015-02-04
  • 打赏
  • 举报
回复
如何实现多张图片上传 //控制上传的JS代码 $(document).ready(function() { $("#uploadify").uploadify({ 'uploader': 'scripts/uploadify.swf', //上传所需的flash文件 'script': 'scripts/upload.ashx', //后台处理文件 'cancelImg': 'cancel.png', //取消按钮的图片 'buttonImg': 'images/select.gif',//按钮图片 'folder': '/uploads', //上传文件夹 'queueID': 'fileQueue', 'queueSizeLimit': 4, //限制每次选择文件的个数 'auto': false, //是否自动上传 'multi': true, //是否多选 'sizeLimit': 6291456, //上传文件限制的最大值 'simUploadLimit': 1, //同时上传的文件个数 'fileDesc': '图片文件', //文件类型的描述信息 'fileExt': '*.jpg;*.png;*.bmp;*.gif', //设置文件类型 'onQueueFull': function(event, queueSizeLimit) { alert("只允许上传" + queueSizeLimit + "个文件"); event.data.action(event, queueSizeLimit) = false; }, 'width':77,//按钮宽度 'height':23,//按钮高度 'wmode':'transparent'//设置按钮背景透明 }); });//codego.net/15/1/1/ //上传图片并保存 public void ProcessRequest (HttpContext context) { try { if (context.Request.Files.Count > 0) { string tempFile = context.Request.PhysicalApplicationPath+context.Request["folder"].Trim('/').Replace("/","\\"); if (!System.IO.Directory.Exists(tempFile+"\\s")) { System.IO.Directory.CreateDirectory(tempFile+"\\s"); } for (int j = 0; j < context.Request.Files.Count; j++) { HttpPostedFile uploadFile = context.Request.Files[j]; if (uploadFile.ContentLength > 0) { uploadFile.SaveAs(tempFile+"\\"+System.IO.Path.GetFileName(uploadFile.FileName)); MakeThumbnail(tempFile + "\\" + System.IO.Path.GetFileName(uploadFile.FileName), tempFile + "\\s\\" + System.IO.Path.GetFileName(uploadFile.FileName), 80, 80); } } } HttpContext.Current.Response.Write(" "); } catch { context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); } }
望远镜Monkey 2015-01-27
  • 打赏
  • 举报
回复
引用 16 楼 webdiyer 的回复:
用百度的这个:http://fex.baidu.com/webuploader/
java 端的后台接收怎么处理呢?
chengq_2528811947 2014-09-06
  • 打赏
  • 举报
回复
多张图片上传示例 // 添加一个上传文件的控件(FileUpload) private void AddFileUpload() { //定义数组 ArrayList arrayList = new ArrayList(); //清除Table中的行 tab_FileUpload_Area.Rows.Clear(); //调用自定义方法,获取上传文件控件集 GetFileUpload(); HtmlTableRow tabRow = new HtmlTableRow(); HtmlTableCell tabCell = new HtmlTableCell(); //添加上传控件 tabCell.Controls.Add(new FileUpload()); tabRow.Controls.Add(tabCell); tab_FileUpload_Area.Rows.Add(tabRow); //调用自定义方法,保存控件集信息到缓存中 SetFileUpload(); } // 获取缓存中上传文件控件集 private void GetFileUpload() { //声明数组对象 ArrayList arrayList = new ArrayList(); if (Session["FilesControls"] != null) { //将生成的上传控件,显示在Table表格中 arrayList = (System.Collections.ArrayList)Session["FilesControls"]; for (int i = 0; i < arrayList.Count; i++) { HtmlTableRow tabRow = new HtmlTableRow(); HtmlTableCell tabCell = new HtmlTableCell(); tabCell.Controls.Add((System.Web.UI.WebControls.FileUpload)arrayList[i]); tabRow.Controls.Add(tabCell); tab_FileUpload_Area.Rows.Add(tabRow); } } } // 保存当前页面上传文件控件集到缓存中 private void SetFileUpload() { //创建动态数组 ArrayList arrayList = new ArrayList(); foreach (Control C in tab_FileUpload_Area.Controls) { //判断控件类型 if (C.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow") { HtmlTableCell tabCell = (HtmlTableCell)C.Controls[0]; //在Table单元格中检索FileUpload控件 foreach (Control control in tabCell.Controls) { //判断控件类型 if (control.GetType().ToString() == "System.Web.UI.WebControls.FileUpload") { //将FileUpload控件信息保存到ArrayList控件中 FileUpload f = (FileUpload)control; arrayList.Add(f); }//CodeGo.net/ } } } Session.Add("FilesControls", arrayList); } //添加上传图片按钮 protected void imgBtnAdd_Click(object sender, ImageClickEventArgs e) { this.AddFileUpload(); } //多图片上传 protected void imgBtnUploadPic_Click(object sender, ImageClickEventArgs e) { //设置上传图片保存的路径 string FilePath = Server.MapPath("./") + "Pictures"; //获取上传图片的集合 HttpFileCollection HFC = Request.Files; for (int i = 0; i < HFC.Count; i++) { HttpPostedFile UserHPF = HFC[i]; if (UserHPF.ContentLength > 0) { // 获取上传图片的文件名 String fileName = UserHPF.FileName.Substring(UserHPF.FileName.LastIndexOf("\\")); //保存图片到指定的位置 UserHPF.SaveAs(FilePath + "\\" + System.IO.Path.GetFileName(UserHPF.FileName)); //如果上传图片为1张,则不按编号进行命名,如果为多张图片上传,则进行按编号命名。 if (UserHPF.ContentLength == 1) imgData.AddNode(txtPicName.Text.Trim(), "Pictures" + fileName, "0", ViewState["ImgID"].ToString()); else imgData.AddNode(txtPicName.Text.Trim() + i.ToString(), "Pictures" + fileName, "0", ViewState["ImgID"].ToString()); } } //删除所有的FileUpload控件 if (Session["FilesControls"] != null) { Session.Remove("FilesControls"); } }
qxyywy 2014-09-05
  • 打赏
  • 举报
回复
已经发给你了
xuyizhou898 2014-09-05
  • 打赏
  • 举报
回复
protected void btnUpload_Click(object sender, EventArgs e) { lblMessage.Text = ""; lblMessage.Visible = false; System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; System.Text.StringBuilder strmsg = new System.Text.StringBuilder(""); string[] rd = Request.Form[1].Split(',');//获得图片描述的文本框字符串数组,为对应的图片的描述 //string albumid=ddlAlbum.SelectedValue.Trim(); int ifile; for (ifile = 0; ifile < files.Count; ifile++) { if (files[ifile].FileName.Length > 0) { System.Web.HttpPostedFile postedfile = files[ifile]; if (postedfile.ContentLength / 1024 > 1024)//单个文件不能大于1024k { strmsg.Append(Path.GetFileName(postedfile.FileName) + "---不能大于1024k<br>"); break; } string fex = Path.GetExtension(postedfile.FileName); if (fex != ".jpg" && fex != ".JPG" && fex != ".gif" && fex != ".GIF") { strmsg.Append(Path.GetFileName(postedfile.FileName) + "---图片格式不对,只能是jpg或gif<br>"); break; } } } if (strmsg.Length <= 0)//说明图片大小和格式都没问题 { //以下为创建图库目录 string dirpath = Server.MapPath("images"); if (Directory.Exists(dirpath) == false) { Directory.CreateDirectory(dirpath); } Random ro = new Random(); int name = 1; for (int i = 0; i < files.Count; i++) { System.Web.HttpPostedFile myFile = files[i]; string FileName = ""; string FileExtention = ""; FileName = System.IO.Path.GetFileName(myFile.FileName); string stro = ro.Next(100, 100000000).ToString() + name.ToString();//产生一个随机数用于新命名的图片 string NewName = DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + stro; if (FileName.Length > 0)//有文件才执行上传操作再保存到数据库 { FileExtention = System.IO.Path.GetExtension(myFile.FileName); string ppath = dirpath + @"\" + NewName + FileExtention; myFile.SaveAs(ppath); } name = name + 1;//用来重命名规则的变量 } Response.Write("<script>alert('恭喜,图片上传成功!')</script>"); } else { lblMessage.Text = strmsg.ToString(); lblMessage.Visible = true; } } 怎样在这里面写连接到数据库的代码啊
xuyizhou898 2014-09-05
  • 打赏
  • 举报
回复
1148708425@qq。com
白云任去留 2014-09-05
  • 打赏
  • 举报
回复
图片与数据库同步?怎么个同步呢,若是一次选取多张上传,又如何做到同步呢? 不大了解楼主的具体需求,其实你上传rar,通过程序解压是一样的,另外多图上传的组件有很多,像swfupload、flashupload、Uploadify…
qxyywy 2014-09-05
  • 打赏
  • 举报
回复
引用 2 楼 xuyizhou898 的回复:
没有积分 不能下载啊 还有别的吗?
给个你的邮箱我给你
xuyizhou898 2014-09-05
  • 打赏
  • 举报
回复
没有积分 不能下载啊 还有别的吗?
qxyywy 2014-09-05
  • 打赏
  • 举报
回复
ajaxupload.3.5.js 可以看看 http://download.csdn.net/detail/qxyywy/4229556
webdiyer 2014-09-05
  • 打赏
  • 举报
回复
用百度的这个:http://fex.baidu.com/webuploader/
zjujia007 2014-09-05
  • 打赏
  • 举报
回复
忘了发示例了。在他们页面上找到的资源地址:
资源下载:
cab安装包(x86)
cab安装包(x64)
xpi安装包
crx安装包
exe安装包
开发文档
证书补丁

示例下载(标准版):
ASP示例
ASP.NET示例
JSP示例
PHP示例

示例下载(专业版):
ASP示例
ASP.NET示例
JSP示例
PHP示例
加载更多回复(6)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧