文件上传:
界面:
前台代码:
<body style="text-align: center; background-image: url(Images/bg6.bmp);">
<form id="form" method="post" runat="server" enctype="multipart/form-data">
<p style="text-align: center">
</p>
<div>
<div style="text-align: center">
<br />
<table border="0" cellpadding="0" cellspacing="0" style="background-image: url(Images/wjsc.bmp); width: 412px; height: 293px">
<tr>
<td style="width: 105px; text-align: center">
<div style="text-align: center">
<div style="text-align: center">
<table cellpadding="0" cellspacing="0" style="width: 410px; height: 177px; text-align: center;">
<tr>
<td align="left" style="width: 100px; height: 42px; text-align: left"></td>
</tr>
<tr>
<td align="left" style="width: 100px; height: 30px; text-align: center"></td>
</tr>
<tr>
<td align="left" style="width: 100px; height: 37px; text-align: center">
<input type="file" name="file" style="width: 370px" id="File1" language="javascript" onclick="return File1_onclick()" runat="server" /></td>
</tr>
<tr>
<td align="left" style="width: 100px; height: 30px; text-align: center">
<asp:Label ID="lbltishi" runat="server" Font-Bold="False" Font-Size="9pt" ForeColor="Red"
Height="20px" Width="355px" Text="提示:请您选择要上传的文件"></asp:Label></td>
</tr>
<tr>
<td style="width: 100px; height: 30px; text-align: center;">
<asp:Button runat="server" Text="上传文件" ID="BtnUp" OnClick="BtnUp_Click" Width="128px" SkinID="btnSkin"></asp:Button></td>
</tr>
<tr>
<td style="width: 100px; height: 21px"> </td>
</tr>
</table>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
后台代码:
//上传方法
public void Up(int id)
{
HttpFileCollection UpLoad = HttpContext.Current.Request.Files; //获取页面所有上传文件
//实现多个文件上传,逐个获取
for (int i = 0; i < UpLoad.Count; i++)
{
HttpPostedFile file = UpLoad[i];//HttpPostedFile 类提供用于获取关于单独的文件的信息和读取及保存文件的属性和方法。
string fileName = Path.GetFileName(file.FileName);//获取页面上传文件的文件名
if (fileName != null)
{
file.SaveAs(MapPath("mr/") + fileName);//保存上传内容
directory.Insert(fileName, id, file.ContentLength, "mr/" + fileName, file.ContentType);//插入数据方法
}
}
Response.Write("<script>alert('恭喜您!文件上传成功!');window.close();</script>");
}
//上传按钮
protected void BtnUp_Click(object sender, EventArgs e)
{
if (this.File1.PostedFile.FileName == "")
{
Response.Write("<script>alert('很遗憾,上传文件不能为空!')</script>");
}
else
{
Up(ID1);
}
}
//插入数据(directory.Insert)
public int Insert(string mrming, int id, int nsize, string path, string s)
{
SqlConnection con = new SqlConnection(GetConStr());
SqlCommand cmd = new SqlCommand("procInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
///添加存储过程的参数
SqlParameter pmrming = new SqlParameter("@mrming", SqlDbType.VarChar, 200);
pmrming.Value = mrming;
cmd.Parameters.Add(pmrming);
SqlParameter pmrid = new SqlParameter("@mrid", SqlDbType.Int, 4);
pmrid.Value = id;
cmd.Parameters.Add(pmrid);
SqlParameter psize = new SqlParameter("@size", SqlDbType.Int, 4);
psize.Value = nsize;
cmd.Parameters.Add(psize);
SqlParameter path1 = new SqlParameter("@path", SqlDbType.VarChar, 255);
path1.Value = path;
cmd.Parameters.Add(path1);
SqlParameter leibie1 = new SqlParameter("@Leibie", SqlDbType.VarChar, 200);
leibie1.Value = s;
cmd.Parameters.Add(leibie1);
int i = -1;
con.Open();
i = cmd.ExecuteNonQuery();
con.Close();
return i;
}
下载模块:
protected void rpZiYuan_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "downLoad") //下载
{
try
{
sql = "update T_ZiYuan set F_DownloadTimes =F_DownloadTimes+1 where F_Id=" + e.CommandArgument;
cs.ExecuteUpdate(sql); //更新下载次数
sql = "select * from T_ZiYuan where F_Id=" + e.CommandArgument;
DataRow row = cs.GetDataSet(sql).Tables[0].Rows[0];
string filePath = row["F_ZiYuanPath"].ToString();
filePath = Server.MapPath("~/ZiYuan/" + filePath);
FileStream fs = new FileStream(filePath, FileMode.Open); //建立文件流
long fileSize = fs.Length;
Context.Response.ContentType = "application/octet-stream"; //设置输出流的 HTTP MIME 类型为application/octet-stream
Context.Response.AddHeader("Content-Disposition", "attachment;fileName=\"" + HttpUtility.UrlEncode(Path.GetFileName(filePath), System.Text.Encoding.UTF8) + "\"");//将 HTTP 头添加到输出流
Context.Response.AddHeader("Content-Length", fileSize.ToString());//增加报文头
byte[] fileBuffer = new byte[fileSize];
fs.Read(fileBuffer, 0, (int)fileSize);
fs.Close();
Context.Response.BinaryWrite(fileBuffer);
Context.Response.End();
//Response.Redirect("DownLoad.aspx");
}
catch
{
throw new Exception("对不起,文件下载错误!");
}
}
}
- iOS开发之结合asp.net webservice实现文件上传下载
iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下使用asp.net webservice实现文件上传下载. 首先,让我们看下文件下载. 这里我们下载cnblogs上的一个zip文件.使用N ...
- ASP.NET中的文件上传大小限制的问题
一.文件大小限制的问题 首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文 ...
- Asp.net mvc 大文件上传 断点续传
Asp.net mvc 大文件上传 断点续传 进度条 概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...
- MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器
MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...
- ASP.NET知识总结(5.文件上传 文件下载)
5.文件上传 ->说明:使用http协议只适合传输小文件,如果想传递大文件,则需要使用插件或者客户 端程序(使用ftp协议) ->客户端操作 <1>为表单添加属性:encty ...
- ASP.NET MVC之文件上传【一】(八)
前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult ...
- 解决ASP.NET Core Mvc文件上传限制问题
一.简介 在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢? 二.设置上传 ...
- 文件上传&文件下载
一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...
- ASP.NET MVC之文件上传【一】
前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult ...
随机推荐
- 把公共cpp包含到cocos2d-x内部编译的方法。。
找到cocos2d-x-3.0alpha0-pre\extensions\Android.mk文件,把自定义的cpp文件加进去即可..如果是其它系统就进相应的目录,找到配置文件添加即可..
- Java自定义日志输出文件
Java自定义日志输出文件 日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别.打印形式和日志的输出路径 ...
- hadoop面试题答案
Hadoop 面试题,看看书找答案,看看你能答对多少(2) 1. 下面哪个程序负责 HDFS 数据存储.a)NameNode b)Jobtracker c)Datanode d)secondary ...
- 搭建Discuz! (mysql+apache+Discuz! )
0. 配置环境 0.0 安装apache 0.1 安装php 1.数据库准备 1.1 创建数据库用户 1.2 创建discuz使用的数据库(编码:utf8-general-ci) 1.3 把1.2创建 ...
- 用UGN3503霍尔器件制作的数字指南针_电路图
本文介绍了用两个UGN3503型霍尔器件设计制作的数字指南针的设计目的.系统结构和工作原理,以及各主要器件的使用方法.本系统包括UGN3503型霍尔器件.TLC0832 A/D转换器.单片机控制.液晶 ...
- 转:SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...
- oracle 在表中有数据的情况下修改表字段类型或缩小长度
分享自己一些常用的sql语句给大家 偶尔我们需要在已有表,并且有数据的情况下,修改其某个字段的类型或缩短他的长度,但是因为表中有数据,所以不可以直接修改,需要换个思路. //建立测试表,可跳过(善于应 ...
- Oracle- 数据库的备份
Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...
- (JAVA版)冒泡排序
核心代码: public void bubbleSort(){ ;i<length-;i++){ ;j<length-i-;j++){ ]) swap(j,j+); } } } publi ...
- SQLite 使用教程2 语法
http://www.runoob.com/sqlite/sqlite-syntax.html SQLite 语法 SQLite 是遵循一套独特的称为语法的规则和准则.本教程列出了所有基本的 SQLi ...