c# web fileUpload实现多文件上传
2010-11-05 14:56
459 查看
1) web.config
<system.web>
<!---单个文件最大只能是20M如果大于20M就会出错-->
<httpRuntime maxRequestLength="20480"></httpRuntime>
2)前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FileUploadDemo._Default" %>
<!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 runat="server">
<title></title>
<style type="text/css">
body{ font-size:12px;}
body a{ cursor:pointer;}
</style>
<script language="javascript" type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script language="javascript" type="text/javascript">
$(function() {
var i = 2;
$("#add").click(function() {
if (i <= 8) {
var html = '<span>文件' + i + ':</span><br/><input type="file" class="upload" runat="server" /><br /><br />';
$("#content").append(html);
i++;
}
else {
alert("最多能上传8个文件!");
}
});
});
function fileError(error) {//上传文件出错
alert(error);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="content">
<asp:Button ID="btnUp" runat="server" Text="上传" Width="90" onclick="btnUp_Click" /><br /><br />
<span>文件1:</span><br/><input type="file" class="upload" runat="server" /><br /><br />
</div>
<br />
<a id="add">添加更多附件 </a>
</form>
</body>
</html>
3)后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;
namespace FileUploadDemo
{
public partial class _Default : System.Web.UI.Page
{
private StringBuilder sb = new StringBuilder();//用来获取上传时出错信息
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUp_Click(object sender, EventArgs e)
{
HttpFileCollection files = HttpContext.Current.Request.Files;//获取上传控件的个数
if (haveFile(files))//存在上传文件
{
if (FindError(files))//上传文件不存在错误
{
bool flag = false;
string dirPath = Server.MapPath(@"~/dir");//上传文件夹路径
if (!Directory.Exists(dirPath))//不存在上传文件夹
{
Directory.CreateDirectory(dirPath);//创建文件夹
}
for (int i = 0; i < files.Count; i++)//遍历上传控件
{
string path = files[i].FileName;//上传文件路径
string fileName = Path.GetFileName(path);//获取文件名
string savePath = dirPath + @"/" + fileName;//上传文件路径
if (path != "")
{
try
{
files[i].SaveAs(savePath);
flag = false;
}
catch (Exception ex)
{
flag = true;
}
}
}
if (flag)//上传文件时出错
{
Page.ClientScript.RegisterStartupScript(GetType(), "uploadError", "alert('上传文件出错!')", true);
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "uploadSuccess", "alert('上传文件成功!')", true);
}
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "fileError", string.Format("fileError('{0}')", sb.ToString()), true);
}
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "haveNoFile", "alert('请选择上传文件!')", true);
}
}
/// <summary>
/// 判断是否有上传文件
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
private bool haveFile(HttpFileCollection files)
{
bool flag = false;
for (int i = 0; i < files.Count; i++)
{
string path = files[i].FileName;//上传文件路径
if (path != "") { flag = true; break; }//存在上传文件
}
return flag;
}
/// <summary>
/// 判断上传文件是否有错
/// 上传文件有错return false
/// 上传文件没有错return true
/// </summary>
/// <param name="files">上传控件</param>
/// <returns></returns>
private bool FindError(HttpFileCollection files)
{
bool flag = false;
for (int i = 0; i < files.Count; i++)//遍历上传控件
{
string path = files[i].FileName;//上传文件路径
if (path != "")//上传控件中存在上传文件
{
string fileName = Path.GetFileName(path);//获取上传文件名
string fex = Path.GetExtension(path);//获取上传文件的后缀名
if (files[i].ContentLength / 4096 > 1024)//上传文件大于4M
{
sb.Append(fileName + "的大小超过4M!");
break;
}
if (fex == ".exe" || fex == ".EXE") //上传文件是exe文件
{
sb.Append(fileName + "的格式不正确!");
break;
}
}
}
if (sb.ToString() == "") { flag = true; }//上传文件没有错误
return flag;
}
}
}
<system.web>
<!---单个文件最大只能是20M如果大于20M就会出错-->
<httpRuntime maxRequestLength="20480"></httpRuntime>
2)前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FileUploadDemo._Default" %>
<!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 runat="server">
<title></title>
<style type="text/css">
body{ font-size:12px;}
body a{ cursor:pointer;}
</style>
<script language="javascript" type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script language="javascript" type="text/javascript">
$(function() {
var i = 2;
$("#add").click(function() {
if (i <= 8) {
var html = '<span>文件' + i + ':</span><br/><input type="file" class="upload" runat="server" /><br /><br />';
$("#content").append(html);
i++;
}
else {
alert("最多能上传8个文件!");
}
});
});
function fileError(error) {//上传文件出错
alert(error);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="content">
<asp:Button ID="btnUp" runat="server" Text="上传" Width="90" onclick="btnUp_Click" /><br /><br />
<span>文件1:</span><br/><input type="file" class="upload" runat="server" /><br /><br />
</div>
<br />
<a id="add">添加更多附件 </a>
</form>
</body>
</html>
3)后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;
namespace FileUploadDemo
{
public partial class _Default : System.Web.UI.Page
{
private StringBuilder sb = new StringBuilder();//用来获取上传时出错信息
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUp_Click(object sender, EventArgs e)
{
HttpFileCollection files = HttpContext.Current.Request.Files;//获取上传控件的个数
if (haveFile(files))//存在上传文件
{
if (FindError(files))//上传文件不存在错误
{
bool flag = false;
string dirPath = Server.MapPath(@"~/dir");//上传文件夹路径
if (!Directory.Exists(dirPath))//不存在上传文件夹
{
Directory.CreateDirectory(dirPath);//创建文件夹
}
for (int i = 0; i < files.Count; i++)//遍历上传控件
{
string path = files[i].FileName;//上传文件路径
string fileName = Path.GetFileName(path);//获取文件名
string savePath = dirPath + @"/" + fileName;//上传文件路径
if (path != "")
{
try
{
files[i].SaveAs(savePath);
flag = false;
}
catch (Exception ex)
{
flag = true;
}
}
}
if (flag)//上传文件时出错
{
Page.ClientScript.RegisterStartupScript(GetType(), "uploadError", "alert('上传文件出错!')", true);
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "uploadSuccess", "alert('上传文件成功!')", true);
}
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "fileError", string.Format("fileError('{0}')", sb.ToString()), true);
}
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "haveNoFile", "alert('请选择上传文件!')", true);
}
}
/// <summary>
/// 判断是否有上传文件
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
private bool haveFile(HttpFileCollection files)
{
bool flag = false;
for (int i = 0; i < files.Count; i++)
{
string path = files[i].FileName;//上传文件路径
if (path != "") { flag = true; break; }//存在上传文件
}
return flag;
}
/// <summary>
/// 判断上传文件是否有错
/// 上传文件有错return false
/// 上传文件没有错return true
/// </summary>
/// <param name="files">上传控件</param>
/// <returns></returns>
private bool FindError(HttpFileCollection files)
{
bool flag = false;
for (int i = 0; i < files.Count; i++)//遍历上传控件
{
string path = files[i].FileName;//上传文件路径
if (path != "")//上传控件中存在上传文件
{
string fileName = Path.GetFileName(path);//获取上传文件名
string fex = Path.GetExtension(path);//获取上传文件的后缀名
if (files[i].ContentLength / 4096 > 1024)//上传文件大于4M
{
sb.Append(fileName + "的大小超过4M!");
break;
}
if (fex == ".exe" || fex == ".EXE") //上传文件是exe文件
{
sb.Append(fileName + "的格式不正确!");
break;
}
}
}
if (sb.ToString() == "") { flag = true; }//上传文件没有错误
return flag;
}
}
}
相关文章推荐
- c# web fileUpload实现多文件上传 .
- c# web fileUpload实现单文件上传
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- c#、asp.net 基于ajaxfileupload.js 实现文件异步上传
- 免费HTTP上传文件控件WebUploadFile.ocx发布,让实现Word在线编辑器变得容易
- 免费HTTP上传文件控件WebUploadFile.ocx发布,让实现Word在线编辑器变得容易
- ajaxfileupload 实现多文件上传
- springmvc + ajaxfileupload 实现异步上传文件(图片)
- 一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
- 使用ajaxFileUpload.js插件实现ajax无刷新上传文件
- C#实现Web文件上传的两种方法
- ajaxfileupload.js实现文件异步上传
- ajaxfileupload.js+SpringMVC实现文件上传
- jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能
- jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能
- jQuery插件AjaxFileUpload实现ajax文件上传
- 使用ajaxfileupload.js插件实现Ajax方式上传文件
- 使用jquery插件uploadify结合commons fileupload实现多文件上传
- WebWork之--使用fileUpload interceptor实现文件上传[基本配置+注意事项]
- Struts2 +jquery+ajaxfileupload 实现无刷新上传文件