网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行
所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先
27 个解决方案
#2
没有积分 不能下载啊 还有别的吗?
#3
给个你的邮箱我给你
#4
图片与数据库同步?怎么个同步呢,若是一次选取多张上传,又如何做到同步呢?
不大了解楼主的具体需求,其实你上传rar,通过程序解压是一样的,另外多图上传的组件有很多,像swfupload、flashupload、Uploadify…
不大了解楼主的具体需求,其实你上传rar,通过程序解压是一样的,另外多图上传的组件有很多,像swfupload、flashupload、Uploadify…
#6
1148708425@qq。com
#7
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;
}
}
怎样在这里面写连接到数据库的代码啊
{
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;
}
}
怎样在这里面写连接到数据库的代码啊
#8
已经发给你了
#9
O(∩_∩)O谢谢!不过还是不能用
#10
百度 搞了个上传控件
#11
你在百度搜索一下 sharpzip 只能导入导出zip格式的压缩文件
#12
网上有个Web图片上传控件,你搜下。
#13
楼主试试这个控件: http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html
支持浏览器:IE6,IE7,IE8,IE8(x64),IE9(x64),Firefox,Chrome,360安全浏览器,360极速浏览器,Maxthon1.x,Maxthon2.x,Maxthon3.x,QQ浏览器
整合代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Web图片批量上传控件演示页面</title>
<script type="text/javascript" src="ImageUploader/ImageUploader.js" charset="utf-8"></script>
</head>
<body>
<div><a href="asp.net/images.aspx">查看上传的图片</a></div>
<div id="msg"></div>
<script language="javascript" type="text/javascript">
var imgUploader = new ImageUploader();
imgUploader.Config["PostUrl"] = "http://localhost/php/upload.php";
window.onload = function()
{
imgUploader.Init();
}
</script>
</body>
</html>
#14
貌似不错
主界面
主界面
#15
#17
多张图片上传示例
// 添加一个上传文件的控件(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");
}
}
// 添加一个上传文件的控件(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");
}
}
#19
如何实现多张图片上传
//控制上传的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");
}
}
//控制上传的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");
}
}
#20
第三方控件,
或者传rar之后服务端解压
或者传rar之后服务端解压
#21
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的
前几天刚看到的
#22
#23
要问网站“时不时需要上传千张图片”技术哪家强,找顺风发快递最强。
#24
能想到“现在使用的是用一个一个fileupload一次次地选择一张张来同时上传”的技术的程序员,我想它的出发点一点也没有从应该注重的“操作体验”出发,这种解决方案真是让人看醉了。
#25
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的
多张能上传,上千张?程序又不是神,不挨个点他哪知道传哪个,挨个改名字更费劲.压缩起来,然后再服务器上调用个什么程序解压?或者都放进一个文件夹里,到时候直接ctrl+A?
#26
315412040@qq.com 求大神给多图上传源码
#27
同求:295123310@qq.com
#1
ajaxupload.3.5.js 可以看看
http://download.csdn.net/detail/qxyywy/4229556
#2
没有积分 不能下载啊 还有别的吗?
#3
没有积分 不能下载啊 还有别的吗?
给个你的邮箱我给你
#4
图片与数据库同步?怎么个同步呢,若是一次选取多张上传,又如何做到同步呢?
不大了解楼主的具体需求,其实你上传rar,通过程序解压是一样的,另外多图上传的组件有很多,像swfupload、flashupload、Uploadify…
不大了解楼主的具体需求,其实你上传rar,通过程序解压是一样的,另外多图上传的组件有很多,像swfupload、flashupload、Uploadify…
#5
#6
1148708425@qq。com
#7
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;
}
}
怎样在这里面写连接到数据库的代码啊
{
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;
}
}
怎样在这里面写连接到数据库的代码啊
#8
已经发给你了
#9
O(∩_∩)O谢谢!不过还是不能用
#10
百度 搞了个上传控件
#11
你在百度搜索一下 sharpzip 只能导入导出zip格式的压缩文件
#12
由于客户项目需求
网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行
所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先
#13
由于客户项目需求
网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行
所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先
由于客户项目需求
网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行
所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先
支持浏览器:IE6,IE7,IE8,IE8(x64),IE9(x64),Firefox,Chrome,360安全浏览器,360极速浏览器,Maxthon1.x,Maxthon2.x,Maxthon3.x,QQ浏览器
整合代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Web图片批量上传控件演示页面</title>
<script type="text/javascript" src="ImageUploader/ImageUploader.js" charset="utf-8"></script>
</head>
<body>
<div><a href="asp.net/images.aspx">查看上传的图片</a></div>
<div id="msg"></div>
<script language="javascript" type="text/javascript">
var imgUploader = new ImageUploader();
imgUploader.Config["PostUrl"] = "http://localhost/php/upload.php";
window.onload = function()
{
imgUploader.Init();
}
</script>
</body>
</html>
#14
由于客户项目需求
网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行
所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先楼主试试这个控件: http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html 由于客户项目需求
网站中需要同时上传多达上千张的图片
现在使用的是用一个一个fileupload一次次地选择一张张来同时上传,但这样做很不人性化,显得有点繁琐
也想过用上传rar的方式来上传,但由于图片需要与数据库同步,这样又好像不行
所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
小弟在这里谢谢了先
支持浏览器:IE6,IE7,IE8,IE8(x64),IE9(x64),Firefox,Chrome,360安全浏览器,360极速浏览器,Maxthon1.x,Maxthon2.x,Maxthon3.x,QQ浏览器
整合代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Web图片批量上传控件演示页面</title>
<script type="text/javascript" src="ImageUploader/ImageUploader.js" charset="utf-8"></script>
</head>
<body>
<div><a href="asp.net/images.aspx">查看上传的图片</a></div>
<div id="msg"></div>
<script language="javascript" type="text/javascript">
var imgUploader = new ImageUploader();
imgUploader.Config["PostUrl"] = "http://localhost/php/upload.php";
window.onload = function()
{
imgUploader.Init();
}
</script>
</body>
</html>
主界面
#15
忘了发示例了。在他们页面上找到的资源地址:
资源下载:
cab安装包(x86)
cab安装包(x64)
xpi安装包
crx安装包
exe安装包
开发文档
证书补丁
示例下载(标准版):
ASP示例
ASP.NET示例
JSP示例
PHP示例
示例下载(专业版):
ASP示例
ASP.NET示例
JSP示例
PHP示例
资源下载:
cab安装包(x86)
cab安装包(x64)
xpi安装包
crx安装包
exe安装包
开发文档
证书补丁
示例下载(标准版):
ASP示例
ASP.NET示例
JSP示例
PHP示例
示例下载(专业版):
ASP示例
ASP.NET示例
JSP示例
PHP示例
#16
#17
多张图片上传示例
// 添加一个上传文件的控件(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");
}
}
// 添加一个上传文件的控件(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");
}
}
#18
#19
如何实现多张图片上传
//控制上传的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");
}
}
//控制上传的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");
}
}
#20
第三方控件,
或者传rar之后服务端解压
或者传rar之后服务端解压
#21
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的
前几天刚看到的
#22
#23
要问网站“时不时需要上传千张图片”技术哪家强,找顺风发快递最强。
#24
能想到“现在使用的是用一个一个fileupload一次次地选择一张张来同时上传”的技术的程序员,我想它的出发点一点也没有从应该注重的“操作体验”出发,这种解决方案真是让人看醉了。
#25
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的
多张能上传,上千张?程序又不是神,不挨个点他哪知道传哪个,挨个改名字更费劲.压缩起来,然后再服务器上调用个什么程序解压?或者都放进一个文件夹里,到时候直接ctrl+A?
#26
315412040@qq.com 求大神给多图上传源码
#27
同求:295123310@qq.com