日期:2014-05-17  浏览次数:20475 次

.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;
//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 || !str