All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
ASP.NET上传文件面面观_[Asp.Net教程]

Writer: delv Article type: Programming skills(编程技巧) Time: 2014/1/24 9:04:20 Browse times: 306 Comment times: 0

ASP.NET上传文件面面观_[Asp.Net教程]


Head photo

Go homepage
Upload pictures
Write articles

ASP.NET上传文件面面观_[Asp.Net教程]




























一、上传到数据库。

(sqlserver为例)
存储文件的数据库中的字段为jimage,类型为image。




在代码中定义类型为byte[]的一个变量buf,在上传组件的PostFile中,从它的InputStream读出字节数组,将buf赋给数据字段jimage就可以了。









int len = this.File1.PostedFile.ContentLength;
byte[] buf = new byte[len];

Stream i = this.File1.PostedFile.InputStream;
i.Read(buf,0,buf.Length);
news.jimage=buf;
//news为新闻类,jimage为它的图片属性,即对应表中的image
i.Close();






显示图像:




图片的显示也很简单,在Persister中注意一下:






SqlDataReader reader=SqlHelper.ExecuteReader("select jimage from news");

if( reader.Read() )
{
news.jimage=(byte[])reader["jimage"];
}
reader.Close();




得到byte[]的内容,要显示也比较简单,在Page_Load()方法中加两句话即可:






Response.ContentType="image/jpeg";
Response.BinaryWrite(ti.content);




这样就可以输出图像了,如果想对图像做一点调整,如旋转,转换格式、获得图片格式(是jpg 还是 gif),请参考下面代码:






//同样,声明输出不是HTML而是image
Response.ContentType="image/jpeg";

//从byte[]得到一个image对象
System.Drawing.Image bmap = Bitmap.FromStream(new MemoryStream(ti.content));
//操作一下这个图像
bmap.RotateFlip(RotateFlipType.Rotate180FlipY);
//输出到页面上
bmap.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
//释放image
bmap.Dispose();





要显示图片在某一个image控件上,可采用下法:




要显示图片的位置放一个image控件然后将它的src指向这个页面就行了!
例如:
页面:ViewImage.aspx






<%@Import Namespace="System.IO"%>
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.Data.SqlClient"%>
<%@ Page Language="C#" Debug="True" %>







显示图片的页面上放一个image控件imgZYF 在后代码中写:
imgZYF.ImageUrl =“ViewImage.aspx?UserID=" +userId




二、上传到服务器的磁盘:

页面文件:upload01.aspx

















<%@ Page language="c#" Codebehind="upload01.aspx.cs" AutoEventWireup="false" Inherits="upload01.upload01" %>



上传到磁盘









align="center">








border="0" align="center">





选择文件:















输入备注:





















&nbsp;




























后置代码:upload01.aspx






using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;


namespace upload01
{




public class upload01 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputButton Button1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.HtmlControls.HtmlInputFile myfile;

private void Page_Load(object sender, System.EventArgs e)
{

}







private void Button1_ServerClick(object sender, System.EventArgs e)
{
//取得客户端路径及文件名
string str=myfile.PostedFile.FileName;
//取得文件类型,如.jpg
string filename2=str.Substring(str.LastIndexOf(".")).ToString().Trim();
// 取得文件大小,单位K
double filesize=myfile.PostedFile.ContentLength/1024.00;
//以时间刻度定义文件名
string filename1=DateTime.Now.Ticks.ToString();
myfile.PostedFile.SaveAs(Server.MapPath("/upload01/"+filename1+filename2));
//将文件名及相关信息存到数据库中




}
}
}






将文件上传到磁盘中,在表中将文件地址或路径记录下来,这样就可以在后面的程序来引用了。

来源:CSDN

















































There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.