if(uploadFile.PostedFile.FileName.Trim() != String.Empty && (Path.GetExtension(uploadFile.PostedFile.FileName)!=".gif" && Path.GetExtension(uploadFile.PostedFile.FileName)!=".jpg"))
{
Response.Write("<Script>alert('上传的图片格式必须为.gif或.jpg!!')</Script>");
return;
}
if (FileUpload1.PostedFile.FileName.Trim() != String.Empty && (Path.GetExtension(FileUpload1.PostedFile.FileName) != ".rar" && Path.GetExtension(FileUpload1.PostedFile.FileName) != ".rar"))
{
Response.Write("<Script>alert('上传的图片格式必须为.rar或.rar!!')</Script>");
return;
} strName = CleanString.htmlInputText( strName );
strBewrite = CleanString.htmlInputText( strBewrite );
strUseMode = CleanString.htmlInputText( strUseMode );
strValidity = CleanString.htmlInputText( strValidity );
string sql="insert into Products(PName,CID,PCPrice,PFPrice,PNPrice,PBewrite,PUseMode,PValidity) values('" +
strName + "'," + strCID + "," + strCPrice + "," + strFPrice + "," +
strNPrice + ",'" + strBewrite + "','" + strUseMode + "','" + strValidity + "');";
sql += "select @@identity as 'identity';"; DBConn myDB = new DBConn();
SqlDataReader dr = myDB.getDataReader(sql);
dr.Read();
string strPID = dr["identity"].ToString();
dr.Close();
myDB.Close(); if ( uploadFile.PostedFile.FileName.Trim() != String.Empty )
{
//----------- update图片
Stream imagedatastream;
SqlConnection myConn=new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
imagedatastream = Request.Files["uploadFile"].InputStream ;
int imagedatalen = Request.Files["uploadFile"].ContentLength ;
string imagedatatype = Request.Files["uploadFile"].ContentType ; byte[] image = new byte[imagedatalen];
imagedatastream.Read(image,0,imagedatalen); String Psql="update Products set PPicture=@imgdata where PID=" + strPID; SqlCommand Pcommand=new SqlCommand(Psql,myConn); SqlParameter imgdata = new SqlParameter("@imgdata",SqlDbType.Image);
imgdata.Value=image;
Pcommand.Parameters.Add (imgdata); myConn.Open();
Pcommand.ExecuteReader();
myConn.Close();
//-----------
}
if (FileUpload1.PostedFile.FileName.Trim() != String.Empty)
{
//----------- update压缩文件
Stream imagedatastream;
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
imagedatastream = Request.Files["FileUpload1"].InputStream;
int imagedatalen = Request.Files["FileUpload1"].ContentLength;
string imagedatatype = Request.Files["FileUpload1"].ContentType; byte[] image = new byte[imagedatalen];
imagedatastream.Read(image, 0, imagedatalen); String Psql = "update Products set rjUrl=@imgdata where PID=" + strPID; SqlCommand Pcommand = new SqlCommand(Psql, myConn); SqlParameter imgdata = new SqlParameter("@imgdata", SqlDbType.Image);
imgdata.Value = image;
Pcommand.Parameters.Add(imgdata); myConn.Open();
Pcommand.ExecuteReader();
myConn.Close();
//-----------
}
要上传的是一个图片格式的文件
和一个RAR文件格式的压缩包。要求的是数据库能读取他们的地址例如:数据库表中:Administrator\桌面\Inetpub\456.jpg
Administrator\桌面\Inetpub\xiaox.rar
上面代码已经实现的是:图片可以传到数据库中但库中显示的地址为<Binary>。我想是设计数据类型为Image的原因。怎么改过来才能显示实地址这是第一个问题
第二。怎么才能上传.RAR文件。使数据库中能读到相应的地址。。
高手告诉我方法。100分双手奉上
{
Response.Write("<Script>alert('上传的图片格式必须为.gif或.jpg!!')</Script>");
return;
}
if (FileUpload1.PostedFile.FileName.Trim() != String.Empty && (Path.GetExtension(FileUpload1.PostedFile.FileName) != ".rar" && Path.GetExtension(FileUpload1.PostedFile.FileName) != ".rar"))
{
Response.Write("<Script>alert('上传的图片格式必须为.rar或.rar!!')</Script>");
return;
} strName = CleanString.htmlInputText( strName );
strBewrite = CleanString.htmlInputText( strBewrite );
strUseMode = CleanString.htmlInputText( strUseMode );
strValidity = CleanString.htmlInputText( strValidity );
string sql="insert into Products(PName,CID,PCPrice,PFPrice,PNPrice,PBewrite,PUseMode,PValidity) values('" +
strName + "'," + strCID + "," + strCPrice + "," + strFPrice + "," +
strNPrice + ",'" + strBewrite + "','" + strUseMode + "','" + strValidity + "');";
sql += "select @@identity as 'identity';"; DBConn myDB = new DBConn();
SqlDataReader dr = myDB.getDataReader(sql);
dr.Read();
string strPID = dr["identity"].ToString();
dr.Close();
myDB.Close(); if ( uploadFile.PostedFile.FileName.Trim() != String.Empty )
{
//----------- update图片
Stream imagedatastream;
SqlConnection myConn=new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
imagedatastream = Request.Files["uploadFile"].InputStream ;
int imagedatalen = Request.Files["uploadFile"].ContentLength ;
string imagedatatype = Request.Files["uploadFile"].ContentType ; byte[] image = new byte[imagedatalen];
imagedatastream.Read(image,0,imagedatalen); String Psql="update Products set PPicture=@imgdata where PID=" + strPID; SqlCommand Pcommand=new SqlCommand(Psql,myConn); SqlParameter imgdata = new SqlParameter("@imgdata",SqlDbType.Image);
imgdata.Value=image;
Pcommand.Parameters.Add (imgdata); myConn.Open();
Pcommand.ExecuteReader();
myConn.Close();
//-----------
}
if (FileUpload1.PostedFile.FileName.Trim() != String.Empty)
{
//----------- update压缩文件
Stream imagedatastream;
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
imagedatastream = Request.Files["FileUpload1"].InputStream;
int imagedatalen = Request.Files["FileUpload1"].ContentLength;
string imagedatatype = Request.Files["FileUpload1"].ContentType; byte[] image = new byte[imagedatalen];
imagedatastream.Read(image, 0, imagedatalen); String Psql = "update Products set rjUrl=@imgdata where PID=" + strPID; SqlCommand Pcommand = new SqlCommand(Psql, myConn); SqlParameter imgdata = new SqlParameter("@imgdata", SqlDbType.Image);
imgdata.Value = image;
Pcommand.Parameters.Add(imgdata); myConn.Open();
Pcommand.ExecuteReader();
myConn.Close();
//-----------
}
要上传的是一个图片格式的文件
和一个RAR文件格式的压缩包。要求的是数据库能读取他们的地址例如:数据库表中:Administrator\桌面\Inetpub\456.jpg
Administrator\桌面\Inetpub\xiaox.rar
上面代码已经实现的是:图片可以传到数据库中但库中显示的地址为<Binary>。我想是设计数据类型为Image的原因。怎么改过来才能显示实地址这是第一个问题
第二。怎么才能上传.RAR文件。使数据库中能读到相应的地址。。
高手告诉我方法。100分双手奉上
解决方案 »
- 在线网页录音
- asp.net中得到的时间字段中包含星期
- 用Vs2005实现一行一显示?
- 高分求教如何实现点击FileUpLoad控件后,需要上传的图片立刻显示在image控件中~~~~~~~~~~~~~~
- 请问关于做好的控件在放到页面上去属性设计时,不停的访问属性,导致内存出错的问题
- ________e.item.cells[1].controls[0]的受保护级别限制问题,谢谢!
- 介绍一个免费C#Asp.Net版的可视化BS版工作流软件
- 如何在.vb里写控制image控件的语句?
- ****怎样写一段对datagrid模板列中的文本框中的内容进行校验****
- 新手初学asp.net,请大家帮帮忙
- 小问题----高手指点下~~~window.open
- GridView如何在DataTable中选择性绑定列
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;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;namespace SCard.admin
{
/// <summary>
/// productAdd 的摘要说明。
/// </summary>
public partial class productAdd : System.Web.UI.Page
{
//protected System.Web.UI.WebControls.DropDownList ddlSales;
protected void Page_Load(object sender, System.EventArgs e)
{
//权限检查
if( Session["adminName"]==null || Session["adminName"].ToString() == String.Empty )
{
Response.Write("<font color=#ff0000 style='FONT-SIZE: 12px'>对不起,您没足够权限访问此页!!</font><br>");
Response.Write("<a href=Default.aspx target=_top style='FONT-SIZE: 12px'>重新登陆</a><br>");
Response.End();
return;
} if( !IsPostBack )
{
getCategory();//绑定类别下拉列表
//getSales();//绑定销售人下拉列表
}
} private void getCategory()//绑定类别下拉列表
{
DBConn myDB = new DBConn();
string sql="select * from Category";
ddlCategory.DataSource = myDB.getDataReader(sql);
ddlCategory.DataTextField = "CName";
ddlCategory.DataValueField = "CID";
ddlCategory.DataBind();
myDB.Close();
} /*
private void getSales()//绑定销售人下拉列表
{
DBConn myDB = new DBConn();
string sql="select * from Sales";
ddlSales.DataSource = myDB.getDataReader(sql);
ddlSales.DataTextField = "SalesName";
ddlSales.DataValueField = "SalesID";
ddlSales.DataBind();
myDB.Close();
}
*/ #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{ }
#endregion protected void btnAdd_Click(object sender, System.EventArgs e)
{
string strName = txtName.Text.Trim();
string strCID = ddlCategory.SelectedValue;
//string strSalesID = ddlSales.SelectedValue;
string strCPrice = txtCPrice.Text.Trim();
string strFPrice = txtFPrice.Text.Trim();
string strNPrice = txtNPrice.Text.Trim();
string strBewrite = txtBewrite.Text.Trim();
string strUseMode = txtUseMode.Text.Trim();
string strValidity = txtValidity.Text.Trim(); if( strName == String.Empty || strCPrice == String.Empty || strCID == String.Empty ||
strFPrice == String.Empty || strNPrice == String.Empty)
{
Response.Write("<script>");
Response.Write("alert('必选项不能为空!!!');");
Response.Write("</script>");
return;
}
else if( strName.Length > 35 )
{
Response.Write("<script>");
Response.Write("alert('输入商品名称太长了!!!');");
Response.Write("</script>");
return;
} try
{
double.Parse(strCPrice);
}
catch
{
Response.Write("<script>");
Response.Write("alert('请检查 成本价 的格式!!!');");
Response.Write("</script>");
return;
}
try
{
double.Parse(strFPrice);
}
catch
{
Response.Write("<script>");
Response.Write("alert('请检查 原价 的格式!!!');");
Response.Write("</script>");
return;
}
try
{
double.Parse(strNPrice);
}
catch
{
Response.Write("<script>");
Response.Write("alert('请检查 现价 的格式!!!');");
Response.Write("</script>");
return;
}
{
Response.Write("<Script>alert('上传的图片格式必须为.gif或.jpg!!')</Script>");
return;
}
if (FileUpload1.PostedFile.FileName.Trim() != String.Empty && (Path.GetExtension(FileUpload1.PostedFile.FileName) != ".rar" && Path.GetExtension(FileUpload1.PostedFile.FileName) != ".rar"))
{
Response.Write("<Script>alert('上传的图片格式必须为.rar或.rar!!')</Script>");
return;
} strName = CleanString.htmlInputText( strName );
strBewrite = CleanString.htmlInputText( strBewrite );
strUseMode = CleanString.htmlInputText( strUseMode );
strValidity = CleanString.htmlInputText( strValidity );
string sql="insert into Products(PName,CID,PCPrice,PFPrice,PNPrice,PBewrite,PUseMode,PValidity) values('" +
strName + "'," + strCID + "," + strCPrice + "," + strFPrice + "," +
strNPrice + ",'" + strBewrite + "','" + strUseMode + "','" + strValidity + "');";
sql += "select @@identity as 'identity';"; DBConn myDB = new DBConn();
SqlDataReader dr = myDB.getDataReader(sql);
dr.Read();
string strPID = dr["identity"].ToString();
dr.Close();
myDB.Close(); if ( uploadFile.PostedFile.FileName.Trim() != String.Empty )
{
//----------- update图片
Stream imagedatastream;
SqlConnection myConn=new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
imagedatastream = Request.Files["uploadFile"].InputStream ;
int imagedatalen = Request.Files["uploadFile"].ContentLength ;
string imagedatatype = Request.Files["uploadFile"].ContentType ; byte[] image = new byte[imagedatalen];
imagedatastream.Read(image,0,imagedatalen); String Psql="update Products set PPicture=@imgdata where PID=" + strPID; SqlCommand Pcommand=new SqlCommand(Psql,myConn); SqlParameter imgdata = new SqlParameter("@imgdata",SqlDbType.Image);
imgdata.Value=image;
Pcommand.Parameters.Add (imgdata); myConn.Open();
Pcommand.ExecuteReader();
myConn.Close();
//-----------
}
if (FileUpload1.PostedFile.FileName.Trim() != String.Empty)
{
//----------- update压缩文件
Stream imagedatastream;
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
imagedatastream = Request.Files["FileUpload1"].InputStream;
int imagedatalen = Request.Files["FileUpload1"].ContentLength;
string imagedatatype = Request.Files["FileUpload1"].ContentType; byte[] image = new byte[imagedatalen];
imagedatastream.Read(image, 0, imagedatalen); String Psql = "update Products set rjUrl=@imgdata where PID=" + strPID; SqlCommand Pcommand = new SqlCommand(Psql, myConn); SqlParameter imgdata = new SqlParameter("@imgdata", SqlDbType.Image);
imgdata.Value = image;
Pcommand.Parameters.Add(imgdata); myConn.Open();
Pcommand.ExecuteReader();
myConn.Close();
//-----------
} //==
txtName.Text = "";
txtCPrice.Text = "";
txtFPrice.Text = "";
txtNPrice.Text = "";
txtBewrite.Text = "";
txtUseMode.Text = "";
txtValidity.Text = "";
ddlCategory.SelectedIndex = 0;
//== Response.Write("<script>");
Response.Write("alert('成功添加!!!');");
Response.Write("</script>");
} protected void btnReset_Click(object sender, System.EventArgs e)
{
txtName.Text = "";
txtCPrice.Text = "";
txtFPrice.Text = "";
txtNPrice.Text = "";
txtBewrite.Text = "";
txtUseMode.Text = "";
txtValidity.Text = "";
ddlCategory.SelectedIndex = 0;
}
}
}
这是这个页面的全部代码
string strfilepath= Server.MapPath("../uploadFiles" + @"\");
string filename = "your file name";
string extension = System.IO.Path.GetExtension(this.uploadFile.PostedFile.FileName);
string filepath = strfilepath+filename+extension;
uploadFile.PostedFile.SaveAs(filePath);数据库里地址字段存filepath
if (hPostedFile.ContentLength > 0)
{
string fileName;
fileName = Path.GetFileName(hPostedFile.FileName.Trim().Replace(" ", ""));
string fileLastName = fileName.Substring(fileName.IndexOf('.'));///获取文件后缀名
if (File.Exists(Server.MapPath(mapPath + fileName)))
{
Message.MsgBoxSelfClasss.MsgBox(fileName + " 已存在,请先删除再上传!");
return;
}
else
{
if (fileName != null)
{
hPostedFile.SaveAs(Server.MapPath(mapPath + fileName));
}
}
}
if ((Desn.Text.Trim() != "") && (FileUpload1.PostedFile.ContentLength > 0))
{
String fileName = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf("\\"),
FileUpload1.PostedFile.FileName.Length - FileUpload1.PostedFile.FileName.LastIndexOf("\\")); String fileTime = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString()
+ DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString()
+ DateTime.Now.Second.ToString() + DateTime.Now.Minute.ToString()
+ DateTime.Now.Millisecond.ToString(); fileName = "\\" + fileTime + GetRandomint() + fileName.Substring(fileName.IndexOf("."), fileName.Length - fileName.IndexOf("."));
string sFileName = Server.MapPath(Request.ApplicationPath) + "\\Pictures" + fileName; if (File.Exists(sFileName) == false)
{
try
{
//把文件存入磁盘,如果失败,导向提示页面
FileUpload1.PostedFile.SaveAs(sFileName);
return ("\\Pictures" + fileName);
}
catch (Exception ex)
{
string sRawURL = Request.RawUrl; if (sRawURL.IndexOf("?") > -1)
{
sRawURL = sRawURL.Substring(0, sRawURL.IndexOf("?"));
}
Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl=" + sRawURL + "&ErrorMessage=" + ex.Message.Replace("\n", " "));
}
}
else
{
Response.Write("<script>alert(\"你上传的文件已经存在!\")</script>");
}
}
else
{
Response.Write("<script>alert(\"你输入的文件描述\\文件名为空,请重新输入!\")</script>");
} return ("");
}
但我用我这就不行啊
二\使用流;
三\rar和图片格式对流来说是一样的
二\数据库记录文件的存放位置
三\rar啊。exe啊。什么都一样的,病毒文件也是一样的
图片能读的话rar 同样能读用流的方式
但是问题不是很难!///获取上载文件的列表
HttpFileCollection fileList = HttpContext.Current.Request.Files;
///定义显示的消息
StringBuilder uploadMsg = new StringBuilder("上载的文件如下:" + "<br>");
IDisk disk = new Disk();
try
{ ///上载文件列表中的每一个文件
for(int i = 0; i < fileList.Count; i++)
{ ///获取当前上载的文件
HttpPostedFile hPostedFile = fileList[i];
string fileName;
///获取上载文件的文件名称
fileName = Path.GetFileName(hPostedFile.FileName);
if(fileName != null)
{ ///上载文件
hPostedFile.SaveAs(MapPath("UploadFile/") + fileName);
///添加文件到数据库中
disk.AddFile(fileName, nParentID, hPostedFile.ContentLength, "UploadFile/" + fileName, hPostedFile.ContentType);
uploadMsg.Append("文件名称:" + fileName + "<br>");
}
}
///显示上载文件的操作成功消息
StatusMsg.Text = uploadMsg.ToString();
}
catch(Exception ex)
{
///显示上载文件的操作失败消息
StatusMsg.Text = ex.Message;