一、WebFrom 图片上传
一、代码实现了简单的图片上传功能(改一下也可以上传其他的),没有做图片大小和格式的判断,主要是熟悉fileupload控件
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication2.WebForm3" %> <!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<br />
<asp:Image ID="Image1" runat="server" visible="false" />
<br />
</div>
</form>
</body>
</html>
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace WebApplication2
{
public partial class WebForm3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile) //判断是否上传了文件
{
string savePath = Server.MapPath("~/upload/");//指定上传文件在服务器上的保存路径
//检查服务器上是否存在这个物理路径,如果不存在,则创建
if (!System.IO.Directory.Exists(savePath))
{
//对该路径应该有足够的权限,否则报错
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + FileUpload1.FileName;
FileUpload1.SaveAs(savePath); //保存文件
Label1.Text = string.Format("<a href='upload/{0}'>upload/{0}</a>", FileUpload1.FileName);
Image1.Visible = true;
Image1.ImageUrl = "~/upload/" + FileUpload1.FileName;
} }
}
}
二、图片上传
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Cryptography;
using System.Web.Security;
using System.IO;
using System.Data.SqlClient;
using System.Data; namespace Demo.Web
{
public partial class show : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public string SlideShow()
{
BLL.slide Slide = new BLL.slide();
DataSet sdr = Slide.GetList();
string navshow = "";
if (sdr != null) //表格形式显示数据
{
try
{ foreach (DataRow mDr in sdr.Tables[].Rows)
{
navshow += "<tr>";
navshow += "<td><a href='" + mDr[].ToString() + "' target='_blank'><img src='" + mDr[].ToString() + "' width='100' /></a></td>";
navshow += "<td>" + mDr[].ToString() + "</td>";
navshow += "<td>" + mDr[].ToString() + "</td>";
navshow += "<td align='center'>" + mDr[].ToString() + "</td>";
navshow += "<td align='center'><a href='editshow.aspx?id=" + mDr[].ToString() + "'>编辑</a> | <a href='delshow.aspxid=1'>删除</a></td>";
navshow += "</tr>";
} }
catch (SqlException ex)
{
Response.Write(ex.ToString());
}
finally
{ ;
} }
return navshow; } protected void submit_Click(object sender, EventArgs e)
{
Boolean fileOk = false;
if (pic_upload.HasFile)//验证是否包含文件
{
//取得文件的扩展名,并转换成小写
string fileExtension = Path.GetExtension(pic_upload.FileName).ToLower();
//验证上传文件是否图片格式
fileOk = IsImage(fileExtension); if (fileOk)
{
//对上传文件的大小进行检测,限定文件最大不超过8M
if (pic_upload.PostedFile.ContentLength < )
{
string filepath = "/images/";
if (Directory.Exists(Server.MapPath(filepath)) == false)//如果不存在就创建file文件夹
{
Directory.CreateDirectory(Server.MapPath(filepath));
}
string virpath = filepath + CreatePasswordHash(pic_upload.FileName, ) + fileExtension;//这是存到服务器上的虚拟路径
string mappath = Server.MapPath(virpath);//转换成服务器上的物理路径
pic_upload.PostedFile.SaveAs(mappath);//保存图片
//显示图片
pic.ImageUrl = virpath;
//清空提示
lbl_pic.Text = "上传图片成功!";//上传图片成功
//下面是添加图片的整体信息
string slidename = SlideName.Text;
string slideimg = pic.ImageUrl;
string slideurl = SlideUrl.Text;
string slidddescrition = SlideSort.Text;
Model.slide ModeSlide = new Model.slide();
ModeSlide.title = slidename;
ModeSlide.img = pic.ImageUrl;
ModeSlide.url = slideurl;
ModeSlide.descrition = slidddescrition;
BLL.slide Slide = new BLL.slide(); if (Convert.ToBoolean(Slide.Add(ModeSlide)))
{
Response.Write("<script>alert('完整的添加图片成功!')</script>");
}
else
{
Response.Write("<script>alert('失败!')</script>");
} }
else
{
pic.ImageUrl = "";
lbl_pic.Text = "文件大小超出8M!请重新选择!";
}
}
else
{
pic.ImageUrl = "";
lbl_pic.Text = "要上传的文件类型不对!请重新选择!";
}
}
else
{
pic.ImageUrl = "";
lbl_pic.Text = "请选择要上传的图片!";
} } /// <summary>
/// 验证是否指定的图片格式
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public bool IsImage(string str)
{
bool isimage = false;
string thestr = str.ToLower();
//限定只能上传jpg和gif图片
string[] allowExtension = { ".jpg", ".gif", ".bmp", ".png" };
//对上传的文件的类型进行一个个匹对
for (int i = ; i < allowExtension.Length; i++)
{
if (thestr == allowExtension[i])
{
isimage = true;
break;
}
}
return isimage;
} /// <summary>
/// 创建一个指定长度的随机salt值
/// </summary>
public string CreateSalt(int saltLenght)
{
//生成一个加密的随机数
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[saltLenght];
rng.GetBytes(buff);
//返回一个Base64随机数的字符串
return Convert.ToBase64String(buff);
} /// <summary>
/// 返回加密后的字符串
/// </summary>
public string CreatePasswordHash(string pwd, int saltLenght)
{
string strSalt = CreateSalt(saltLenght);
//把密码和Salt连起来
string saltAndPwd = String.Concat(pwd, strSalt);
//对密码进行哈希
string hashenPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPwd, "sha1");
//转为小写字符并截取前16个字符串
hashenPwd = hashenPwd.ToLower().Substring(, );
//返回哈希后的值
return hashenPwd;
}
}
}
html
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="show.aspx.cs" Inherits="Demo.Web.show" %> <!DOCTYPE aspx PUBLIC "-//W3C//DTD Xaspx 1.0 Transitional//EN" "http://www.w3.org/TR/xaspx1/DTD/xaspx1-transitional.dtd">
<aspx xmlns="http://www.w3.org/1999/xaspx">
<head runat="server">
<meta http-equiv="Content-Type" content="text/aspx; charset=UTF-8">
<title>Douaspx 管理中心 - 首页幻灯广告 </title>
<meta name="Copyright" content="Douco Design." />
<link href="css/public.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/global.js"></script>
<style>
#div_pic
{
width: 40%;
height: 40%;
margin-bottom: 5%;
}
#div_pic img
{
width: 100%;
height: auto;
}
.style2
{
width: 227px;
}
.style3
{
width: 112px;
}
.style5
{
width: 125px;
}
.style6
{
width: 138px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="dcWrap">
<div id="dcHead">
<div id="head">
<div class="logo"><a href="index.aspx"><img src="data:images/dclogo.gif" alt="logo"></a></div>
<div class="nav">
<ul>
<li class="M"><a href="JavaScript:void(0);" class="topAdd">新建</a>
<div class="drop mTopad"><a href="product.aspx?rec=add">商品</a> <a href="article.aspx?rec=add">文章</a> <a href="nav.aspx?rec=add">自定义导航</a> <a href="show.aspx">首页幻灯</a> <a href="page.aspx?rec=add">单页面</a> <a href="manager.aspx?rec=add">管理员</a> <a href="link.aspx"></a> </div>
</li>
<li><a href="../index.aspx" target="_blank">查看站点</a></li>
<li><a href="index.aspx?rec=clear_cache">清除缓存</a></li>
<li><a href="http://help.douco.com" target="_blank">帮助</a></li>
<li class="noRight"><a href="module.aspx">Douaspx+</a></li>
</ul>
<ul class="navRight">
<li class="M noLeft"><a href="JavaScript:void(0);">您好,admin</a>
<div class="drop mUser">
<a href="manager.aspx?rec=edit&id=1">编辑我的个人资料</a>
<a href="manager.aspx?rec=cloud_account">设置云账户</a>
</div>
</li>
<li class="noRight"><a href="login.aspx?rec=logout">退出</a></li>
</ul>
</div>
</div>
</div>
<!-- dcHead 结束 --> <div id="dcLeft"><div id="menu">
<ul class="top">
<li><a href="index.aspx"><i class="home"></i><em>管理首页</em></a></li>
</ul>
<ul>
<li><a href="system.aspx"><i class="system"></i><em>系统设置</em></a></li>
<li><a href="nav.aspx"><i class="nav"></i><em>自定义导航栏</em></a></li>
<li class="cur"><a href="show.aspx"><i class="show"></i><em>首页幻灯广告</em></a></li>
<li><a href="page.aspx"><i class="page"></i><em>单页面管理</em></a></li>
</ul> <ul>
<li><a href="article_category.aspx"><i class="articleCat"></i><em>文章分类</em></a></li>
<li><a href="article.aspx"><i class="article"></i><em>文章列表</em></a></li>
</ul>
<ul class="bot">
<li><a href="backup.aspx"><i class="backup"></i><em>数据备份</em></a></li>
<li><a href="mobile.aspx"><i class="mobile"></i><em>手机版</em></a></li>
<li><a href="theme.aspx"><i class="theme"></i><em>设置模板</em></a></li>
<li><a href="manager.aspx"><i class="manager"></i><em>网站管理员</em></a></li>
<li><a href="manager.aspx?rec=manager_log"><i class="managerLog"></i><em>操作记录</em></a></li>
</ul>
</div></div>
<div id="dcMain">
<!-- 当前位置 -->
<div id="urHere">Douaspx 管理中心<b>></b><strong>首页幻灯广告</strong> </div> <div class="mainBox imgModule">
<h3>首页幻灯广告</h3>
<table width="100%" border="0" cellpadding="8" cellspacing="0" class="tableBasic">
<tr>
<th>添加幻灯</th>
<th>幻灯列表</th>
</tr>
<tr>
<td width="350" valign="top">
<form action="show.aspx?rec=insert" method="post" enctype="multipart/form-data">
<table width="100%" border="0" cellpadding="8" cellspacing="0" class="tableOnebor">
<tr>
<td><b>幻灯名称</b>
<asp:TextBox ID="SlideName" size="20" class="inpMain" runat="server"></asp:TextBox> </td>
</tr>
<tr>
<td><b>幻灯图片</b>
<div id="preview"> </div> <div id="div_pic"><asp:Image ID="pic" runat="server"
ImageUrl="~/Images/photo_icon.png" /></div> <asp:FileUpload ID="pic_upload" runat="server" /><asp:Label ID="lbl_pic" runat="server" class="pic_text"></asp:Label> </td> </tr>
<tr>
<td><b>链接地址</b>
<asp:TextBox name="show_link" value="" size="40" class="inpMain" runat="server"
ID="SlideUrl"></asp:TextBox>
</td>
</tr>
<tr>
<td><b>描述</b>
<asp:TextBox ID="SlideSort" value="简介说明" size="20" class="inpMain" runat="server"></asp:TextBox> </td>
</tr>
<tr>
<td>
<input type="hidden" name="token" value="79db104d" />
<asp:Button ID="submit" class="btn" runat="server" Text="提交"
onclick="submit_Click"></asp:Button> </td>
</tr>
</table>
</form>
</td>
<td valign="top">
<table width="100%" border="0" cellpadding="8" cellspacing="0" class="tableOnebor">
<tr>
<td class="style6">幻灯片</td>
<td class="style3">幻灯片名称</td>
<td class="style5">跳转的链接</td>
<td align="center" class="style2">描述</td>
<td width="80" align="center">操作</td>
</tr> <%= SlideShow()%> </table>
</td>
</tr>
</table>
</div>
</div>
<div class="clear"></div>
<div id="dcFooter">
<div id="footer">
<div class="line"></div>
<ul>
版权所有 © 2013-2015 网络科技有限公司,并保留所有权利。
</ul>
</div>
</div><!-- dcFooter 结束 -->
<div class="clear"></div> </div>
</form>
</body>
</aspx>
一、WebFrom 图片上传的更多相关文章
- Asp.Net Mvc 使用WebUploader 多图片上传
来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...
- 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...
- JS图片上传预览插件制作(兼容到IE6)
其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...
- HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术
最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...
- 对百度的UEditor多图片上传的一些补充
我已经写了一篇文章关于百度的UEditor提取多图片上传模块.如果还没有看过,请点击以下链接查看 http://www.cnblogs.com/luke1006/p/3719029.html 出差了两 ...
- 使用localResizeIMG3+WebAPI实现手机端图片上传
前言 惯例~惯例~昨天发表的使用OWIN作为WebAPI的宿主..嗯..有很多人问..是不是缺少了什么 - - 好吧,如果你要把OWIN寄宿在其他的地方...代码如下: namespace Conso ...
- TinyMCE的使用(包括汉化及本地图片上传功能)
TinyMCE我就不多介绍了,这是下载地址:https://www.tinymce.com/download/ 下载下来是英文版,要汉化也很简单.首先去网上随便下载个汉化包,然后把汉化包解压后的lan ...
- 包含修改字体,图片上传等功能的文本输入框-Bootstrap
通过jQuery Bootstrap小插件,框任何一个div转换变成一个富文本编辑框,主要特色: 在Mac和window平台下自动针对常用操作绑定热键 可以拖拽插入图片,支持图片上传(也可以获取移动设 ...
- PHP多图片上传实例demo
upload.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
随机推荐
- What are the differences between an LES-SGS model and a RANS based turbulence model?
The biggest difference between LES and RANS is that, contrary to LES, RANS assumes that \(\overline{ ...
- [洛谷P1514] NOIP2010 引水入城
问题描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行×M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. ...
- HAProxy+Heartbeat双节点出现VIP情况
本文使用heartbeat做高可用,主节点192.168.0.204,备节点192.168.0.205,vip192.168.0.206,防火墙启动状态 先启动主节点,再启动备节点后,发现以下问题: ...
- ht-3 linkedList特性
LinkedList内部封装的是双向链表数据结构,每个节点是一个Node对象. Node对象中封装的是要被添加的元素,还有一个指向上一个Node对象的引用和 指向下一个Node对象的引用 , 与Arr ...
- php strspn()函数 语法
php strspn()函数 语法 作用:返回字符串中包含某些字符的数目.大理石平台厂家 语法:strspn(string,charlist,start,length) 参数: 参数 描述 strin ...
- 状态管理Vuex的使用总结
1.Vuex.store 的基本使用 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. Vu ...
- 【转】excel音标乱码
源地址:https://zhidao.baidu.com/question/204553900.html 百度一个音标字体文件,下载后再拷贝到C:\WINDOWS\FONTS目录下面就可以了 下载地址 ...
- Elasticsearch6.5安装&&常见问题与答案解释
ElasticSearch是一个用Java开发的基于Lucene的搜索服务器.它可以提供一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口.现阶段它主要为Apache许可条款下的开放源码 ...
- scau 1142 巡逻的士兵(分治)
1142 巡逻的士兵 时间限制:1000MS 内存限制:65536K 提交次数:217 通过次数:58 题型: 编程题 语言: G++;GCC Description 有N个士兵站成一队列, 现 ...
- 洛谷P1879 [USACO06NOV]玉米田Corn Fields(状压dp)
洛谷P1879 [USACO06NOV]玉米田Corn Fields \(f[i][j]\) 表示前 \(i\) 行且第 \(i\) 行状态为 \(j\) 的方案总数.\(j\) 的大小为 \(0 \ ...