1、
UpLoadPic.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class UpLoadPic : System.Web.UI.Page
{
public void UpLoadPictrue()
{
if (inputFile.PostedFile.ContentLength > 0)
{
if (IsValidFileType(inputFile.PostedFile.FileName))
{
System.Drawing.Image.GetThumbnailImageAbort backb = null;
//大图
string fullName = inputFile.PostedFile.FileName;
string newName = System.DateTime.Now.ToString("yyyyMMddhhmmss") + fullName.Substring(fullName.LastIndexOf("."));
string path = Server.MapPath("../PlayerPhotos");
inputFile.SaveAs(path + "/" + newName);
}
else
{
Response.Write("<script>alert('出错了!上传文件格式不对!')</script>");
}
}
else
{
Response.Write("<script>alert('出错了!上传文件不能为空!')</script>");
}
}
private string[] AcceptedFileTypes = new string[] { "jpg", "jpeg", "jpe", "gif" };
private bool IsValidFileType(string FileName)
{
string ext = FileName.Substring(FileName.LastIndexOf(".") + 1, FileName.Length - FileName.LastIndexOf(".") - 1);
for (int i = 0; i < AcceptedFileTypes.Length; i++)
{
if (ext.ToLower() == AcceptedFileTypes[i])
{
return true;
}
}
return false;
}
}
UPloadPic.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpLoadPic.aspx.cs" Inherits="UpLoadPic" %>
<!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">
<asp:FileUpload ID="inputFile" runat="server" /><div>
</div>
<asp:Button ID="Button1" runat="server" Text="上传"/>
</form>
</body>
</html>
2、
c#+access的:
private void load()
{
OleDbConnection conn=new OleDbConnectio(Common.ComClass.ComClass.GetConnStr());
OleDbCommand cmd=new OleDbCommand("select top 1 * from 签名",conn);
OleDbDataReader dr;
conn.Open();
dr=cmd.ExecuteReader();
if(dr.Read())
{
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])dr.GetValue(0);
MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
s1.Image=Image.FromStream(stmBLOBData);
byteBLOBData = (Byte[])dr.GetValue(1);
stmBLOBData = new MemoryStream(byteBLOBData);
s2.Image=Image.FromStream(stmBLOBData);
}
dr.Close();
conn.Close();
}
private void button3_Click(object sender, System.EventArgs e)
{
if(str1==null) return;
OleDbConnection conn=new OleDbConnection(Common.ComClass.ComClass.GetConnStr());
OleDbCommand cmd=new OleDbCommand("update 签名 set 负责人=@Image",conn);
string strBLOBFilePath=str1;
FileStream fsBLOBFile = new FileStream(strBLOBFilePath,FileMode.Open, FileAccess.Read);
Byte[] bytBLOBData = new Byte[fsBLOBFile.Length];
fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length);
fsBLOBFile.Close();
OleDbParameter prm=new OleDbParameter("@Image",OleDbType.Binary,bytBLOBData.Length,
ParameterDirection.Input,false,0,0,null,DataRowVersion.Current,bytBLOBData);
cmd.Parameters.Add(prm);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
ComClass.Msg("成功保存技术负责人签名!");
}
3、
FileStream _fs = new FileStream("D://DevelopTools//foxmail6.0beta3.exe" , FileMode.Open , FileAccess.Read);
BinaryReader _br = new BinaryReader(_fs , Encoding.Default);
byte[] btImage = new byte[_fs.Length];
_br.Read(btImage , 0 , Convert.ToInt32((_fs.Length)));
_br.Close();
_fs.Close();
string strSQL = "INSERT INTO FILES(FILECONTENT , FILETYPE) VALUES(@FILECONTENT , @FILETYPE)";
using(SqlConnection conn = new SqlConnection("server = (local) ; database = fileupload ; pwd = sa ; uid = sa"))
{
conn.Open();
SqlCommand cmd = new SqlCommand(strSQL , conn);
cmd.Parameters.Add("@FILECONTENT" , btImage);
cmd.Parameters.Add("@FILETYPE" , "exe");
cmd.ExecuteNonQuery();
}
4、
后台代码:
public void FileUpload(object sender, EventArgs e)
{
string strFilePath = "C://uploadfile//" + inpFile.PostedFile.FileName;
string strContentType = inpFile.PostedFile.ContentType;
inpFile.PostedFile.SaveAs(strFilePath);
SqlConnection connectionFileUpload;
SqlCommand commandCheckFile;
SqlDataReader datareaderCheckFile;
string strCheckFile;
strCheckFile = "SELECT filename FROM files WHERE username='" + Session["sessionUserName"] + "' AND filename='" + inpFile.PostedFile.FileName + "'";
connectionFileUpload = new SqlConnection("server=localhost;database=dbs;uid=sa;pwd=********;");
commandCheckFile = new SqlCommand(strCheckFile, connectionFileUpload);
connectionFileUpload.Open();
datareaderCheckFile = commandCheckFile.ExecuteReader();
if (datareaderCheckFile.HasRows)
{
datareaderCheckFile.Close();
connectionFileUpload.Close();
}
else
{
datareaderCheckFile.Close();
string strFileUpload = "INSERT files(username,filename,filetype,filelength,updatetime) VALUES (@username,@filename,@filetype,@filelength,@updatetime)";
SqlCommand commandFileUpload;
commandFileUpload = new SqlCommand(strFileUpload, connectionFileUpload);
commandFileUpload.Parameters.Add("@username", Session["sessionUserName"]);
commandFileUpload.Parameters.Add("@filename", inpFile.PostedFile.FileName);
commandFileUpload.Parameters.Add("@filetype", strContentType);
commandFileUpload.Parameters.Add("@filelength", inpFile.PostedFile.ContentLength.ToString());
commandFileUpload.Parameters.Add("@updatetime", System.DateTime.Now);
commandFileUpload.ExecuteNonQuery();
}
connectionFileUpload.Close();
Response.Redirect("UpLoadFile.aspx");
}
前台:
<input type="file" id="inpFile" name="inpFile" />
6、
从access存取图片,我把代码帖出来
1.存取
protected void btnUpImage_Click(object sender, EventArgs e)
{
Session.Remove("Image");
if (FileUpload1.PostedFile.ContentLength > 0)
{
string FileName = FileUpload1.PostedFile.FileName.ToLower();
string ExtName = FileName.Substring(FileName.LastIndexOf(".") + 1);
if (ExtName == "gif" || ExtName == "jpeg" || ExtName == "jpg")
{
Session["Image"] = FileUpload1.FileBytes;
}
else
{
Page.RegisterStartupScript("error", "<script>alert('不支持这种文件!')</script>");
}
}
else
{
Response.Write("<script>alert('不存在这个文件!')</script>");
}
if (Session["Image"] != null)
{
imgProduct.ImageUrl = "Image.aspx";
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
int sortid=int.Parse(ddlType2.SelectedValue);
string command = "insert into goods (goodsname,price,function,pic,sortid) values(@goodsname,@price,@function,@pic,"+sortid+")";
//sortid用参数不知道为什么总是提示类型不匹配,所以只能直接在插入
OleDbCommand objCommand=new OleDbCommand();
objCommand.CommandText = command;
//objCommand.Parameters.AddWithValue("@sortid", 5);
objCommand.Parameters.AddWithValue("@goodsname", txtName.Text);
objCommand.Parameters.AddWithValue("@price", Convert.ToDecimal(txtPrice.Text));
objCommand.Parameters.AddWithValue("@function", txtIntro.Text);
if (Session["Image"] != null)
{
objCommand.Parameters.AddWithValue("@pic", (byte[])Session["Image"]);
}
else
{
byte[] buffer=new byte[1024*1024];
FileStream fsPic=new FileStream(Server.MapPath("~/admin/images/noimage.gif"),FileMode.OpenOrCreate);
fsPic.Read(buffer, 0, Convert.ToInt32(fsPic.Length));
Session["Image"]=buffer;
objCommand.Parameters.AddWithValue("@pic", (byte[])Session["Image"]);
}
DB.excuteNonQuery(objCommand);
//Page.RegisterStartupScript("error", "<script>alert('产品信息已添加!')</script>");
Response.Redirect("ManageProduct.aspx");
}
2.用单独一个页面显示图片,以记录的id为参数,GetImageByID.aspx
<asp:Image runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"pic","GetImageById.aspx?id={0}")%>'></asp:Image>
7、
存:
FileInfo fi=new FileInfo(filePath);
FileStream fileStream=fi.OpenRead();
int length=(int)fileStream.Length;
byte[] fileData=new byte[length];
fileStream.Read(fileData,0,length);
//Sql
OleDbCommand command = new OleDbCommand ("INSERT INTO t1 (filename,fileData)" + "VALUES (@filename,@fileData)", myConnection);
//add para 1
System.Data.OleDb.OleDbParameter parafileName = new OleDbParameter("@filename", System.Data.OleDb.OleDbType.VarChar,50);
parafileName.Value ="it.jpg";
command.Parameters.Add(parafileName);
//add para2
System.Data.OleDb.OleDbParameter paramPersonImage = new OleDbParameter("@fileData", System.Data.OleDb.OleDbType.Binary);
paramPersonImage.Value = fileData;
command.Parameters.Add(paramPersonImage);
//Excute
this.OpenDB();
command.ExecuteNonQuery();
myConnection.Close();
取:
OleDbCommand cmd=new OleDbCommand(strSel,myConnection);
OleDbDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
byte[] by=(byte[])dr.GetValue(2);
MemoryStream ms=new MemoryStream(by);
Image img=Image.FromStream(ms);
pb.Image=img;
}
dr.Close();
cmd.Dispose();
myConnection.Close();
8、
/********************* 以文件方式保存 *****************************/
在页面添加如下控件:
<asp:FileUpload runat="server" ID="UploadedFile" />
<asp:Button runat="server" ID="btnSaveFile" Text="上传" OnClick="btnSaveFile_OnClick" />
在后台文件添加这个函数:
protected void btnSaveFile_OnClick(object sender, EventArgs e)
{
if (UploadedFile.HasFile)
{
string destDir = 你希望保存此图片的物理地址;
try
{
UploadedFile.SaveAs(destDir + UploadedFile.FileName);
}
catch (Exception exc)
{
//处理出错信息
ErrorMessage.Text = exc.Message;
}
}
else
{
ErrorMessage.Text = "您还没选择一个上传的文件。";
}
}
/**************** 以地址方式保存图片 ********************/
void funSaveImg()
{
OleDbConnection objConnection = new OleDbConnection();
OleDbCommand objCommand = new OleDbCommand();
int intI;
objConnection.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + 你的ACCESS数据库文件地址;
objCommand.Connection = objConnection;
objCommand.CommandText = "INSERT INTO ....."; //添加一条记录图片地址的记录,此处省略
try
{
objConnection.Open();
objCommand.ExecuteNonQuery();
}
catch (Exception e)
{
//此处省略
}
}