aspx页面中用Input 标签实现上传图片功能
实现上传图片功能需单独的建立一个aspx页面,
其中前台页面需要注意两点:
a)实现上传功能的input的type="file"
b)设置请求报文头为 enctype="multipart/form-data" 类型
前台代码如下:
<form method="post" enctype="multipart/form-data">
<table class="list">
<tr>
<th>上传</th>
<td>
<input type="file" name="f1" /></td>
</tr>
<tr>
<th></th>
<td>
<input type="submit" value="上传" /></td>
</tr>
</table>
</form>
在后台.cs文件中需注意几点:
a)使用 Request.Files 从请求报文中获得上传过来的文件
b)上传到服务器中需要重命名一个永不重复的文件,使用 Guid.NewGuid()
string newName = Guid.NewGuid() + extName;
c)上传成功的标志为重命名的图片上传到服务器上,并且数据库中存储图片路径的字段修改成功
后台处理上传的方法 ProcessUpload() 代码如下:
private void ProcessUpload(int pid)
{
//1.0得到上传过来文件
HttpFileCollection fils = Request.Files;//得到上传过来的文件 if (fils.Count > )
{
if (fils[].ContentLength > )
{
//2.0上传图片以后要将图片的名称做一个修改(不能重复)
string oldName = fils[].FileName;
//得到当前名称的后缀
string extName = System.IO.Path.GetExtension(oldName);
//生成一个永不重复的名称
string newName = Guid.NewGuid() + extName; using (Image img = Image.FromStream(fils[].InputStream))
{
//将图片流保存到服务器路径上
img.Save(Server.MapPath("/upload/img/") + newName); //将数据库中数据对应对象的图片名称改为当前图片的名称
BlogPhotoBLL bll = new BlogPhotoBLL();
BlogPhoto model = bll.GetModel(pid);
//修改图片的名称
model.PSrc = newName;
//提交,修改数据库图片的名称
if (bll.Update(model))
{
Response.Write("<script>alert('上传成功');window.location='/0906/Photo/PhotoList.aspx?albId=" + albId + "'</script>");
Response.End();
}
}
}
else
{
Response.Write("<script>alert('您还没有选中文件');window.location=window.location</script>");
Response.End();
}
}
}
aspx页面中用Input 标签实现上传图片功能的更多相关文章
- HTML简单登录和注册页面及input标签诠释
今天第一次接触HTML这种语言,虽然不能完全理解其中的意思,过去学的英语单词几乎也忘了差不多了,但是感觉进入这门语言学习之后就没有那么难了,一步一步来吧!下面巩固下今天学内容: HTML是一种超文本标 ...
- html移动应用 input 标签 清除按钮功能如何实现(不触发键盘)
有个需求是:输入框有文本的时候就显示清除按钮,没有文本则隐藏清除按钮,点击清除按钮不能影响键盘弹出的状态. 网上有css实现自动显示和隐藏清除按钮的方案,但是考虑到兼容性,我们还是使用js来实现. c ...
- vs2010 用户控件拖到aspx页面不可用
错误描述: 在web项目中添加一个用户控件,直接拖动用户控件ascx到aspx页面出现a标签而不是控件标签 解决办法: 把“源”切换为“设计”视图,然后拖动ascx用户控件到页面即可:
- input标签上传图片怎么获取src;
大家都知道input标签可以上传文件 如: <input type="file"/> 就可以上传文件,当然也可以上传图片,上传的图片的src地址如何取到: var re ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- 小小标签,强大功能——深藏不露的 <input>
<input> 虽只是一个看似简单的 HTML 表单元素,但它这么一个单一的元素,就有多达 30 多个属性(attribute),相信无论你是个小菜鸟还是像我一样写了 15 年 HTML ...
- Aspx页面模拟WebService功能
在后台引入 using System.Web.Services 命名空间 然后在编写web服务方法: [WebMethod] public static string GetData(string t ...
- 如何解决火狐FF里Input标签刷新页面后 仍然保存之前输入的内容的方法。
直接在input 标签里 增加 autocomplete="off".火狐默认为 on.
- 让ASPX页面可以提交html标签代码的配置
1:打开web.config文件,在system.web节点里,添加<httpRuntime requestValidationMode="2.0" /> 2:在asp ...
随机推荐
- C++学习11 类和new、delete操作符 类与const关键字
如果你是Java.C#.PHP程序员,那么会对 new 非常熟悉,在这些编程语言中,只能通过 new 来创建对象. 在C++中,你可以像定义变量一样来创建对象,如: Student stu; //对象 ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
- C++primer练习14.44
编写一个简单的桌面计算器使其处理二元运算 // 14_44.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iost ...
- adb shell am force-stop <package>
•adb shell am force-stop <package>关闭程序的adb命令
- django models 建立好后,table也创建成功了,为什么网页后台不显示的问题
刚学,遇到这个问题,所以向大神请教,大神给了两个词,admin ,register.感觉像被雷击中了一样,原来忘记了,注册(register) 解决方法就是:在admin.py中对你的model进行注 ...
- OC基础(15)
@property参数 @Property练习 @class 循环retian *:first-child { margin-top: 0 !important; } body > *:last ...
- SASS使用总结
简单用法: 变量 sass中可以定义变量,方便统一修改和维护. //sass style $fontStack: Helvetica, sans-serif; $primaryColor: #333; ...
- Flex4 中<s:Datagrid>、<mx:Datagrid>添加超链接的完整方法
<s:Datagrid>的添加超链接方法(链接文字会重叠) <s:GridColumn dataField="_fileName" headerText=&quo ...
- 获取oracle 里的表名与字段
--数据库表名 SELECT distinct A.OBJECT_NAME as TAB_NAME,B.comments as DESCR FROM USER_OBJECTS A , USER_TAB ...
- linux中ll和du的区别
首先,明确一个概念,linux中目录其实也是一个文件,它存储了一张表,该表就是该目录文件下,所有文件名和inode的映射关系. 其中inode和数据块block的关系http://c.bianchen ...