.net的批量上传图片???

yasire 2009-02-26 03:37:12
最近的机试题要求做一个批量上传图片的功能,所谓的批量上传是多个文件一起上传,还是循环着一个一个传?

又如何做到多个文件一起上传呢?
...全文
1779 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
z1ootwo 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

Xproer.ImageUploader:http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html
主界面

图片列表

添加图片

编辑图片:

提示信息:

整合代码

<!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>
[/Quote]
不错,收下了,谢谢。
cwhatiscs 2012-06-25
  • 打赏
  • 举报
回复
楼主试试这个控件:http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html
主界面

图片列表

添加图片

编辑图片:

提示信息:

整合代码

<!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>

wushuaifly 2010-08-24
  • 打赏
  • 举报
回复
我也在做!使用List做个中转,再循环添加list中的内容~但还没有成功~~~
JASONJJYY 2010-02-10
  • 打赏
  • 举报
回复
多谢9楼!学习了!学习了
ld1201 2009-02-26
  • 打赏
  • 举报
回复
给你一段ajax无刷新上传的代码





<%@ WebHandler Language="c#" Class="File_WebHandler" Debug="true" %>

using System;
using System.Web;
using System.IO;
//51aspx
public class File_WebHandler : IHttpHandler
{
private const int UploadFileLimit = 3;//上传文件数量限制

private string _msg = "上传成功!";//返回信息

public void ProcessRequest(HttpContext context)
{
string user = context.Request.UrlReferrer.ToString();
int iTotal = context.Request.Files.Count;

if (iTotal == 0)
{
_msg = "没有数据";
}
else
{
int iCount = 0;

for (int i = 0; i < iTotal; i++)
{
HttpPostedFile file = context.Request.Files[i];

if (file.ContentLength > 0 || !string.IsNullOrEmpty(file.FileName))
{
//保存文件
file.SaveAs(System.Web.HttpContext.Current.Server.MapPath("./file/" + Path.GetFileName(file.FileName)));

//这里可以根据实际设置其他限制
if (++iCount > UploadFileLimit)
{
_msg = "超过上传限制:" + UploadFileLimit;
break;
}
}
}
}
context.Response.Write("<script>window.parent.Finish('" + _msg + "');</script>");
}

public bool IsReusable
{
get
{
return false;
}
}
}

dxpws 2009-02-26
  • 打赏
  • 举报
回复
good luck
walkghost 2009-02-26
  • 打赏
  • 举报
回复
swfupload还是flashupload。
bbs.ahnw.gov.cn,去看看吧,这个论坛用了flash的多文件上传。但是我发现它只兼容IE。
A海阔天空 2009-02-26
  • 打赏
  • 举报
回复
gdjlc 2009-02-26
  • 打赏
  • 举报
回复
转一个收藏的代码“一次上传多个图片并预览”,已经测试过了,代码可以直接用。
在前台代码可以添加任意多个FileUpload控件,后台会自动获取的。其它见说明~

前台代码:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
<link href="http://www.svnhost.cn/style/public.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script language="javascript">
function $(o){return document.getElementById(o);}
function CheckImgCss(o,img)
{
if (!/\.((jpg)|(bmp)|(gif)|(png))$/ig.test(o.value))
{
alert('只能上传jpg,bmp,gif,png格式图片!');
o.outerHTML = o.outerHTML;
}
else
{
$(img).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=o.value;
//$('Image1').src = o.value;//这里IE7已经不支持了。所以才有上面的方法。
}
}
</script>
<form id="form1" runat="server">
<div><h1>一次上传多个图片并预览,请选择图片:</h1>
<br />
<asp:FileUpload ID="FileUpload1" onchange="CheckImgCss(this, 'img');" runat="server" />
<br />
<asp:FileUpload ID="FileUpload2" onchange="CheckImgCss(this, 'img');" runat="server" />
<br />
<asp:FileUpload ID="FileUpload3" onchange="CheckImgCss(this, 'img');" runat="server" />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" />
<div id="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=<%= pic%>,sizingMethod=scale);width:102px;height:100px;"></div>
</div>
</form>
<div>
</body>
</html>



后台代码:

//该变量用来修改的的时候的默认值。例如上传自己的头像,如果用户修改头像,这里可以显示他原来的头像。
public string pic = "http://www.svnhost.cn/images/logo.gif";
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Random r = new Random();
//这样循环,可以同时上传多个文件。前台已经有文件格式的判断,有错误提示了。这里只要过滤掉非法文件即可,无需提示了。
for (int i = 0; i < Request.Files.Count; i++)
{
if (Request.Files[i].ContentLength > 0)
{
string ex = System.IO.Path.GetExtension(Request.Files[i].FileName).ToLower();
if (".jpg.gif.png.bmp".Contains(ex))
{
string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + r.Next(100, 999).ToString() + ex;
//保存文件名到数据库
//xxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxx

Request.Files[i].SaveAs(Server.MapPath(newFileName));
pic = newFileName;
}
}
}
}
花郎 2009-02-26
  • 打赏
  • 举报
回复
循环上传控件
wsbgy 2009-02-26
  • 打赏
  • 举报
回复
关注!
wsbgy 2009-02-26
  • 打赏
  • 举报
回复
关注!
yoursWTR 2009-02-26
  • 打赏
  • 举报
回复
循环 Request.Files
yasire 2009-02-26
  • 打赏
  • 举报
回复
可是怎么循环啊?比如说上传控件分别是fileupload1,fileupload2.....fileupload10

我在for循环里面没法fileupload+i啊?

怎么循环啊?
glasses1999 2009-02-26
  • 打赏
  • 举报
回复
一个一个传,循环.
从理论上,也没有必要同时写N个文件。写完一个,再写下一个,一样的
BossFriday 2009-02-26
  • 打赏
  • 举报
回复
正常情况下都是一个一个的上传的.
不过考虑考虑让用户压缩(.zip格式)后上传,然后再代码里解包.(目前好像大家还是只用一个老外封装好那个dll去程序解压zip格式的压缩包吧?)
路人乙e 2009-02-26
  • 打赏
  • 举报
回复
多个文件同时上传,可以结合flash(网上搜),让用户一次选择多个文件
也可以使用多个普通file控件
但无论怎样都是一个一个保存到服务器上的

62,046

社区成员

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

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

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

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