实现多张图片的上传

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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先

27 个解决方案

#1


ajaxupload.3.5.js  可以看看  http://download.csdn.net/detail/qxyywy/4229556

#2


没有积分 不能下载啊  还有别的吗?

#3


引用 2 楼 xuyizhou898 的回复:
没有积分 不能下载啊  还有别的吗?

给个你的邮箱我给你

#4


图片与数据库同步?怎么个同步呢,若是一次选取多张上传,又如何做到同步呢?
不大了解楼主的具体需求,其实你上传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;
        }
    }


怎样在这里面写连接到数据库的代码啊

#8


已经发给你了

#9


O(∩_∩)O谢谢!不过还是不能用

#10


百度 搞了个上传控件     实现多张图片的上传

#11


你在百度搜索一下 sharpzip  只能导入导出zip格式的压缩文件 

#12


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先
网上有个Web图片上传控件,你搜下。

#13


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先
楼主试试这个控件: 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


引用 13 楼 zha02ruts1yun 的回复:
Quote: 引用 楼主 xuyizhou898 的回复:

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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先
楼主试试这个控件: 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>

貌似不错
主界面
实现多张图片的上传

#15


忘了发示例了。在他们页面上找到的资源地址:
资源下载:
cab安装包(x86)
cab安装包(x64)
xpi安装包
crx安装包
exe安装包
开发文档
证书补丁

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

示例下载(专业版):
ASP示例
ASP.NET示例
JSP示例
PHP示例

#16


用百度的这个: http://fex.baidu.com/webuploader/

#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");
        }
    }

#18


引用 16 楼 webdiyer 的回复:
用百度的这个: http://fex.baidu.com/webuploader/


java 端的后台接收怎么处理呢?

#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");
        }
    }

#20


第三方控件,
或者传rar之后服务端解压

#21


http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的

#22


该回复于2015-02-04 09:49:11被管理员删除

#23


要问网站“时不时需要上传千张图片”技术哪家强,找顺风发快递最强。

#24


能想到“现在使用的是用一个一个fileupload一次次地选择一张张来同时上传”的技术的程序员,我想它的出发点一点也没有从应该注重的“操作体验”出发,这种解决方案真是让人看醉了。

#25


引用 21 楼 zeratul1990 的回复:
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


引用 2 楼 xuyizhou898 的回复:
没有积分 不能下载啊  还有别的吗?

给个你的邮箱我给你

#4


图片与数据库同步?怎么个同步呢,若是一次选取多张上传,又如何做到同步呢?
不大了解楼主的具体需求,其实你上传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;
        }
    }


怎样在这里面写连接到数据库的代码啊

#8


已经发给你了

#9


O(∩_∩)O谢谢!不过还是不能用

#10


百度 搞了个上传控件     实现多张图片的上传

#11


你在百度搜索一下 sharpzip  只能导入导出zip格式的压缩文件 

#12


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先
网上有个Web图片上传控件,你搜下。

#13


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先
楼主试试这个控件: 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


引用 13 楼 zha02ruts1yun 的回复:
Quote: 引用 楼主 xuyizhou898 的回复:

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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先


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

 所以想请教各位大神,有什么好的方法建议,或者有什么好的主键可以介绍
 小弟在这里谢谢了先
楼主试试这个控件: 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>

貌似不错
主界面
实现多张图片的上传

#15


忘了发示例了。在他们页面上找到的资源地址:
资源下载:
cab安装包(x86)
cab安装包(x64)
xpi安装包
crx安装包
exe安装包
开发文档
证书补丁

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

示例下载(专业版):
ASP示例
ASP.NET示例
JSP示例
PHP示例

#16


用百度的这个: http://fex.baidu.com/webuploader/

#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");
        }
    }

#18


引用 16 楼 webdiyer 的回复:
用百度的这个: http://fex.baidu.com/webuploader/


java 端的后台接收怎么处理呢?

#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");
        }
    }

#20


第三方控件,
或者传rar之后服务端解压

#21


http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的

#22


该回复于2015-02-04 09:49:11被管理员删除

#23


要问网站“时不时需要上传千张图片”技术哪家强,找顺风发快递最强。

#24


能想到“现在使用的是用一个一个fileupload一次次地选择一张张来同时上传”的技术的程序员,我想它的出发点一点也没有从应该注重的“操作体验”出发,这种解决方案真是让人看醉了。

#25


引用 21 楼 zeratul1990 的回复:
http://suchso.com/UIweb/bootstrap-aspnet-plupload-multi-image-upload.html
前几天刚看到的

多张能上传,上千张?程序又不是神,不挨个点他哪知道传哪个,挨个改名字更费劲.压缩起来,然后再服务器上调用个什么程序解压?或者都放进一个文件夹里,到时候直接ctrl+A?

#26


        实现多张图片的上传实现多张图片的上传315412040@qq.com   求大神给多图上传源码

#27


同求:295123310@qq.com