C#--web中上传图片与浏览

FileUpload控件:
属性:
FileName:文件名
HasFile:bool 是否选中了文件
FileBytes:要上传文件的二进制数据
方法:
SaveAs(string 绝对路径):上传,另存为。

一、上传到硬盘文件夹
(一)传单个文件
第一步:准备好文件及路径:
//把之前在客户端的文件名给取出来
string fileName = FileUpload1.FileName;

//防止文件重名
fileName = DateTime.Now.ToString("yyyyMMddhhmmsss") + fileName;

//把相对路径转化为绝对路径
string path = Server.MapPath("uploads/" + fileName);

第二步:执行上传:
//上传
FileUpload1.SaveAs(path); //参数必须根路径

注意:
1.如何防止文件重名?
2.如何防止同一时间点不同用户传统一文件名?

protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = FileUpload1.FileName;
string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + Label2.Text;
string path = Server.MapPath("/upload/") + filename;
FileUpload1.SaveAs(path);
}

(二)传多个文件:
思路:遍历表单中所有的FileUpload控件,如果选择文件就上传

int index = 0;
foreach (Control ctrl in form1.Controls)
{
if (ctrl is FileUpload)
{
index++;
//取得每个上传控件
FileUpload upload = ctrl as FileUpload;
//上传控件中选上文件了
if (upload.HasFile)
{
//做文件路径出来
string path = Server.MapPath("uploads/" + DateTime.Now.ToString("yyyyMMddhhmmss") + index.ToString("00") + upload.FileName);

//上传
upload.SaveAs(path);
}
}
}

我的:

protected void Button8_Click(object sender, EventArgs e)
{
foreach (Control co in form1.Controls)
{
if (co is FileUpload)
{
FileUpload fiup=co as FileUpload;
if (fiup.HasFile)//重点
{
string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + fiup.FileName;
string path = Server.MapPath("/upload/") + filename;
fiup.SaveAs(path);
}

}
}
}

二、上传到数据库Image字段:
(一)传到数据库去
1.做数据库的操作代码。DA Data
Image字段对应在程序里是byte[]类型

2.做界面上的代码。
a.把界面的值取出来
FileUpload1.FileBytes - 用来获得上传文件的二进制数据。
b.送到数据库去

(二)从数据库中找出来,显示出来
法一:会生成垃圾文件
在服务端生成一个JPG,把这个JPG的路径赋给Image控件

法二:单独做一个用来显示图片二进制数据的页面。把这个页面赋给Image控件。

我的;

页面一:

protected void Button2_Click(object sender, EventArgs e)//上传到数据库
{
ImageshujuData da = new ImageshujuData();
da.Iname = FileUpload1.FileName;
da.Ipath = FileUpload1.FileBytes;
ImageshujuDA im=new ImageshujuDA();
im.Insert(da);
}
protected void llimage_Click(object sender, EventArgs e)//从数据库中浏览图片
{
Image1.ImageUrl = "Showimage.aspx?id="+TextBox1.Text;
}

页面二:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DA;
using Data;
public partial class Showimage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string iid=Request["id"].ToString();
int imid = Convert.ToInt32(iid);
ImageshujuData da = new ImageshujuDA().Select(imid);
if (da != null)
{
byte[] pic = da.Ipath;
Response.OutputStream.Write(pic,0,pic.Length);
Response.End();

}
}
}

数据库:

drop table Imageshuju;--删除
create table Imageshuju--创建
(
Iid int identity primary key,
Iname varchar(100) not null,
Ipath image
)

select * from Imageshuju;--查询

时间: 2024-08-25 09:19:13

C#--web中上传图片与浏览的相关文章

CKEditor4 在java web中的应用说明(详细可行)

按照官方的说明书就可,这里主要注意一点!! 就是<script src="../ckeditor.js"></script>中js文件的路径问题,我的ckeditor文件夹是在WebContent文件夹下,jsp文件是同一层目录的,所以最后的代码应该是 <script type="text/javascript"src="./ckeditor/ckeditor.js"></script> 注意斜杆号

小白向:web中利用request.getPart()上传文件到服务器

被文件上传弄得焦头烂额的一天,果然web中的路径和各种设置真的好讨厌= = 下面是超级小白的.及其简约的"详"解 1.明确目的: 用户将 1.txt 文件 上传到 服务器(web工程下的某个文件夹)中 2.明确过程 文件上传的过程涉及两个文件, 一个 .jsp文件,和 一个 servlet 文件. .jsp文件(upload.jsp):用户操作页面 =显示文件名的文本框+文件选择按钮(浏览...)+确认上传按钮 servlet文件(uploadServlet.java):根据.jsp中

&quot;命名空间&quot;system.web&quot;中不存在类型或命名空间名称security&quot;错误解决方法

using System; using System.Collections.Generic; using System.Text; using System.Web; namespace 求md5 { class Program { static void Main(string[] args) { string str = GetMd5("xuwei"); Console.WriteLine(str); } public static string GetMd5(string st

Viewport在开发手机Web中的应用

目前比较主流的移动设备系统包括 Android,IOS ,Symbian,BlackBerry 与Web OS.这些系统浏览器都是基于webkit核心,而webkit号称是一款全功能的移动浏览器,支持 HTML + CSS + JavaScript,但由于移动设备本身与PC的差异,导致我们开发的网页在移动设备上总是会存在一些不如人意的地方. Viewport 翻译为中文可以叫做"视区",大家都知道移动设备的屏幕一段都比PC小很多,webkit浏览器会将一个较大的"虚拟&quo

优化Web中的性能

优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争. 优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的顺序一般也是按请求的流程逐一优化.这里的流程只是做个概要,并不代表全面. 整个流程是以最快的方式让用户看到结果 定位的方法 思路是:把看不见的http,具体化.可视化. 定位是优化的前提.没有准确的定位就无法有效的解决问题. 浏览器 看整个请求的时间 看整个页面加载的时间 看页面加载的数据大小 看页

CSS3 生成内容(在Web中插入内容)

在Web中插入内容,在CSS2.1时代依靠的是JavaScript来实现.但进入CSS3进代之后我们可以通 过CSS3的伪类“:before”,“:after”和CSS3的伪元素“::before”.“::after”来实现,其关键是依靠CSS3中的 “content”属性来实现.不过这个属性对于img和input元素不起作用. content配合CSS的伪类或者伪元素,一般可以做以下四件事情: 功能 功能说明 none 不生成任何内容 attr 插入标签属性值 url 使用指定的绝对或相对地址

编译器错误消息: CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)

署名:冯兵 今天我遇上一个问题:编译器错误消息: CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?). 让我烦恼了很长一段时间,怎么调试也不知道错在哪,后来问师兄才知道错在哪. 起因:修改一个功能模块的代码,怕影响到其他功能模块的功能实现,所以我新建了一个区域,把要修改模块的相关代码都复制过去,把带波浪线的提示都修改完后,   运行就出现这个错误. 解决方案:找到复制前和复制后的视图文件夹下的文件名为“Web.confi

java web中servlet、jsp、html 互相访问的路径问题。

在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径. 情况一.指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendRedirect(path); 情况二.指向内部的web组件和本身有关系的,这一类我暂时看到的有:servlet或者jsp的转发 假设在myapp项目下有

java web 中的转发和重定向

假设应用程序的 contextPath 为 /ctx,在 http://localhost:8080/ctx/a/b 资源中,我们转发和重定向到 http://localhost:8080/ctx/x/y 资源,分别应该怎么写? 转发,是在同一个应用程序中,请求从由资源 A 处理,到由资源 B 处理.资源 A 和资源 B 属于同一个应用程序的资源,它们总是相对于该应用程序的 contextPath 而言的.转发的资源可以使用相对路径(不以 "/" 开头)和绝对路径(以 "/&