ps:我数据库使用的pgsql,看个人修改。

代码asp.net 的,使用了mootools框架,里面包含了bootstrap上传图片,查看预览,还加了个上传任意文件的FileUpload。(界面随便弄的)

没有mootools的,自己去下

下载那里貌似有点小问题,如有啥问题,欢迎留言~~

前台代码部分:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="file_up.aspx.cs" Inherits="file_up" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="css/BootstrapCSS/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="/css/ShouYe/style.css" />
<script type="text/javascript" src="js/jquery.3.2.1.js"></script>
<script src="js/BootstrapJS/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
<script src="map7api/mootools-core-1.4.1-full-compat.js" type="text/javascript" charset="utf-8"></script> <script src="js/BootstrapJS/fileinputJS/fileinput.js"></script>
<link rel="stylesheet" href="css/BootstrapCSS/fileinputCSS/fileinput.min.css" />
<script src="js/BootstrapJS/bootstrap3-dialog/bootstrap-dialog.js"></script>
<link rel="stylesheet" href="css/BootstrapCSS/bootstrap3-dialogCss/bootstrap-dialog.css" /> <link rel="stylesheet" href="js/js_image/jquery.mmenu.all.css" />
<link rel="stylesheet" href="js/js_image/slick.css" />
<link rel="stylesheet" href="js/js_image/reset.css" />
<link href="js/js_image/viewer.css" rel="stylesheet" /> <script src="js/js_image/viewer.js" type="text/javascript" charset="utf-8"></script>
<script src="js/js_image/main.js" type="text/javascript" charset="utf-8"></script> <title>文件上传</title> <style>
.nav_left li{
list-style-type:none;
} .div_property{
margin: 10px 0px;
} #div_page{
margin: auto;
text-align:center;
width:200px;
}
#div_page li {
list-style:none; /* 将默认的列表符号去掉 */
float:left; /* 往左浮动 */
margin:10px 10px;
padding:2px 5px;
background-color:#f8f8f8;
border:1px solid #e8e8e8;
}
#div_page .active{
padding:2px 5px;
background-color:#4c9ed9;
border:1px solid #e8e8e8;
}
#div_page .active a{
color:#fff;
} #div_btn {
/*float:right;*/
display:none;
position:fixed;right:0px;top:200px;
}
#div_btn img{
width:30px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="height:200px; width:1000px; margin:0 auto; text-align:center;">
<div style=" margin-top:50px;">
<p style="font-size:24px">上传图片</p></br>
<input class="btn btn-success" type="button" data-toggle="modal" data-target="#myModal" data-id='' value="添加" />
<input class="btn btn-success" type="button" data-toggle="modal" data-target="#myModal" data-id='' value="修改" />
<input class="btn btn-success" type="button" value="删除" onclick="del();" />
</div>
</div>
<hr />
<div style="margin-top:20px; margin:0 auto;" >
<p style="font-size:24px;text-align:center;">上传文件</p></br>
<div style="margin-left:420px;">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="下载" OnClick="Button2_Click" /><br />
<!-- <asp:ListBox ID="lb_FileList" runat="server" AutoPostBack="True" Width="300px" Height="300px" OnSelectedIndexChanged="lb_FileList_SelectedIndexChanged">
<asp:ListItem Value="文件列表:"></asp:ListItem>
</asp:ListBox> <br />-->
<asp:GridView ID="GridView1" runat="server" Width="700px" AutoGenerateColumns="False" CellPadding="" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="fileid" HeaderText="fileid" />
<asp:BoundField DataField="filename" HeaderText="文件名称" />
<asp:BoundField DataField="filelength" HeaderText="文件大小" />
<asp:BoundField DataField="filetype" HeaderText="文件类型" />
<asp:TemplateField HeaderText="资源下载" >
<ItemTemplate>
<asp:LinkButton ID="lbtnDown" runat="server" OnCommand="lbtnDown_Click" CommandArgument='<%#Eval("filepath").ToString() %>'>下   载</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView></br>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Label ID="lab_FileDescription" runat="server" Text=""></asp:Label>
</div>
</div>
</form> <div id="div_moreInfo">
<ul class="honor_ul clearfix" id="ul_proList" style="list-style:none;"> </ul>
</div>
<div id="div_page"></div>
<div>
<input id="input_page" style="width:25px;margin-left:50px;"/>
<a href="javascript:#" onclick="changePage(limit, limitPage, document.getElementById('input_page').value, total);" >跳转</a>
</div>
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
&times;</button>
<h4 class="modal-title" id="myModalLabel">
添加
</h4>
</div>
<div class="modal-body div_property"> <input id="f_upload" name="input2" type="file" class="file" multiple
data-show-upload="false" data-show-caption="true" data-show-preview="true" data-allowed-file-extensions='["jpg","png"]'> <div class="input-group div_property">
<span class="input-group-addon">名称</span>
<input id="input_name" type="text" class="form-control" placeholder="twitterhandle">
</div>
<div class="form-group div_property">
<label for="name">描述</label>
<textarea id="textarea_description" class="form-control" rows=""></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
关闭
</button>
<button type="button" class="btn btn-primary" onclick="submit();">
提交
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal -->
</div> </body>
</html>

运行界面:

后台代码部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Npgsql;
using System.Data;
using System.IO;
using FrameWork;
using System.Configuration;
public partial class file_up : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack){
init();
}
} protected void Button1_Click(object sender, EventArgs e)
{
if(FileUpload1.PostedFile.FileName==string.Empty){
Response.Write("<script>alert('请选择要上传的文件!');</script>");
}
else
{ //获取要上传的文件的信息
//获取要上传的文件的信息
string filepath = FileUpload1.PostedFile.FileName;//文件路径
string oldfilename = filepath.Substring(filepath.LastIndexOf("/") + );//文件名
string FileExtension = Path.GetExtension(oldfilename); //文件的扩展名
int filelength = (int)oldfilename.Length;//文件名长度
//随机生成文件名
Random Rnd = new Random();
int strRnd = Rnd.Next(, );
string newfilename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + strRnd.ToString() + FileExtension.ToLower();
//将文件上传到以当前日期命名的文件夹中
string UpLoadName = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString();
bool FileUploadPathExists = File.Exists(Server.MapPath("UpLoad" + "/" + UpLoadName));
//指定文件夹不存在,如果不存在就创建该文件夹
if (!FileUploadPathExists)
{
Directory.CreateDirectory(Server.MapPath("UpLoad" + "/" + UpLoadName));
}
//保存上传的文件
string savapath = Server.MapPath("UpLoad" + "/" + UpLoadName);//保存路径
string savapath1 = "UpLoad" + "/" + UpLoadName + "/" + newfilename;//保存路径
FileUpload1.PostedFile.SaveAs(savapath + "/" + newfilename); //连接数据库字符串
string connectionString1 = "Server=localhost; Port=5432;Database=city;User ID=postgres;Password=postgres";
NpgsqlConnection conn = new NpgsqlConnection(connectionString1);
conn.Open();
//conn.Close();
string sql = "insert into u_file(FileName,FileLength,FileType,FilePath) values('" + newfilename + "','" + filelength + "','" + FileExtension + "','" + savapath1 + "')";
//conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); try
{ //int count = Convert.ToInt32(cmd.ExecuteScalar());
// string.Format Response.Write("<script>alert('连接成功')</script>");
cmd.ExecuteNonQuery();
//刷新页面
Response.AddHeader("Refresh", ""); //显示信息
//NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql,connectionString1);
//System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
//strMsg.Append("<font color=green>文件被成功添加到数据库中,详细信息如下所示:<br>");
//strMsg.Append("上传的文件的类型为:" + this.FileUpload1.PostedFile.ContentType.ToString() + "<br>");
//strMsg.Append("客户端文件的地址为:" + filepath + "<br>");
//strMsg.Append("上传文件的文件名为:" + newfilename + "<br>");
//strMsg.Append("文件上传到服务器的路径为:" + savapath + "<br>");
//strMsg.Append("上传文件的扩展名为:" + FileExtension + "<br>");
//strMsg.Append("上传文件的大小为:" + FileUpload1.PostedFile.ContentLength + "个字节</font>");
//this.Label1.Text = strMsg.ToString(); }
catch (Exception error)
{
Response.Write(error.ToString());
}
finally
{
conn.Close();
} }
} private void init() { //连接数据库字符串
string connectionString1 = "Server=localhost; Port=5432;Database=city;User ID=postgres;Password=postgres";
NpgsqlConnection conn = new NpgsqlConnection(connectionString1);
conn.Open();
//conn.Close();
string sql = "select fileid,filename,filelength,filetype,filepath from u_file";
//conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"table");
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
//NpgsqlDataReader dr = cmd.ExecuteReader();
/* while(dr.Read()){ this.lb_FileList.Items.Add(new ListItem(dr.GetString(1), dr.GetInt32(0).ToString()));
}*/
//dr.Close();
conn.Close(); } //下载
protected void lbtnDown_Click(Object sender, CommandEventArgs e){ // 定义文件路径
string url = "";
// 定义文件名
string fileName = ""; // 获取文件在服务器的地址
url = e.CommandArgument.ToString();
//Response.Write(e.CommandArgument.ToString()); // 取得地址中的文件名
// 判断传输地址是否为空
if (url == "")
{
// 提示“该文件暂不提供下载”
// Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script defer>alert('该文件暂不提供下载!');</script>");
Response.Write("<script>alert('该文件暂不提供下载!')</script>");
return;
} // 判断获取的是否为地址,而非文件名
if (url.IndexOf("/") > -)
{
// 获取文件名
fileName = url.Substring(url.LastIndexOf("/") + );//获取文件名 }
else
{
// url为文件名时,直接获取文件名
fileName = url;
} // 流方式下载文件 try
{
// 定义服务器路径
string urlServer = Server.MapPath(url); // 以字符流的方式下载文件
FileStream fileStream = new FileStream(urlServer, FileMode.Open);
byte[] bytes = new byte[(int)fileStream.Length];
fileStream.Read(bytes, , bytes.Length);
fileStream.Close();
Response.ContentType = "application/octet-stream"; // 通知浏览器下载而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
catch (Exception)
{ } }
protected void lb_FileList_SelectedIndexChanged(object sender, EventArgs e)
{
//从config中读取文件上传路径
//string strFileUploadPath = ConfigurationManager.AppSettings["FileUploadPath"].ToString();
//从列表框控件中读取选择的文件名
//string strFileName = lb_FileList.SelectedValue;
//组合成物理路径
//string strFilePhysicalPath = Server.MapPath(strFileUploadPath + strFileName);
//根据物理路径实例化文件信息类
//FileInfo fi = new FileInfo(strFilePhysicalPath);
//获得文件大小和创建时间并赋值给标签
//lab_FileDescription.Text = string.Format("文件大小:{0} 字节<br><br>上传时间:{1}<br>", fi.Length, fi.CreationTime);
//把文件名赋值给重命名文本框
//tb_FileNewName.Text = strFileName;
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('点个锤子!')</script>"); } }

下载界面:

关于

做得不好,希望有用。

最新文章

  1. ssh简化后之事务管理
  2. 我的Android第五章:通过Intent实现活动与活动之间的交互
  3. 怎样获取Windows平台下SQL server性能计数器值
  4. jQuery贪吃蛇--jQuery学习
  5. windows Azure 域名绑定
  6. Python Counter() 的实现
  7. C#实现发送邮件——核心部分代码
  8. 第八届河南省赛F.Distribution(水题)
  9. wpf全局异常
  10. SLAM+语音机器人DIY系列:(八)高阶拓展——2.centos7下部署Django(nginx+uwsgi+django+python3)
  11. 精选 TOP45 值得学习的Python项目
  12. 了解UI Automator Viewer
  13. centos密码策略
  14. Space Replacement
  15. Java——多线程常见面试题
  16. js判断值是不是全是数字
  17. point-position目标定位
  18. 使用org.jsoup.Jsoup下载网络中的图片
  19. 一些编译php时的configure 参数
  20. c#实现最简快速排序,你绝对可以看懂

热门文章

  1. java 关于多层的异常捕获
  2. thymeleaf模板引擎简介
  3. 一、FreeMarker实现对js和css压缩
  4. Priority Queue(优先队列)
  5. php 算法知识 猴子选大王
  6. 操作系统OS - fork bomb(Windows)
  7. Vulnhub_bossplayersCTF 记录
  8. Linux下给mysql创建用户并分配权限
  9. 【已解决】iOS11使用MJRefresh上拉加载结束tableView闪动、跳动的问题
  10. 无线渗透之ettercap