.net的批量上传图片???
最近的机试题要求做一个批量上传图片的功能,所谓的批量上传是多个文件一起上传,还是循环着一个一个传?
又如何做到多个文件一起上传呢?
[解决办法]
多个文件同时上传,可以结合flash(网上搜),让用户一次选择多个文件
也可以使用多个普通file控件
但无论怎样都是一个一个保存到服务器上的
[解决办法]
正常情况下都是一个一个的上传的.
不过考虑考虑让用户压缩(.zip格式)后上传,然后再代码里解包.(目前好像大家还是只用一个老外封装好那个dll去程序解压zip格式的压缩包吧?)
[解决办法]
一个一个传,循环.
从理论上,也没有必要同时写N个文件。写完一个,再写下一个,一样的
[解决办法]
循环 Request.Files
[解决办法]
关注!
[解决办法]
关注!
[解决办法]
循环上传控件
[解决办法]
转一个收藏的代码“一次上传多个图片并预览”,已经测试过了,代码可以直接用。
在前台代码可以添加任意多个FileUpload控件,后台会自动获取的。其它见说明~
前台代码:
- HTML code
<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>
[解决办法]
swfupload还是flashupload。
bbs.ahnw.gov.cn,去看看吧,这个论坛用了flash的多文件上传。但是我发现它只兼容IE。
[解决办法]
good luck
[解决办法]
给你一段ajax无刷新上传的代码
- C# code
<%@ WebHandler Language="c#" Class="File_WebHandler" Debug="true" %>using System;using System.Web;using System.IO;//51aspxpublic 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; } }}