asp如何将图片以二进制方式存如数据库。非form方式
非form方式,图片就在服务端主要是一个批量的程序,把服务端一个目录下的图片全部传入数据库http://zhidao.baidu.com/question/3548220...
非form方式,
图片就在服务端
主要是一个批量的程序,把服务端一个目录下的图片全部传入数据库
http://zhidao.baidu.com/question/354822093.html
告诉我大概思路也行,比如用fso.opentextfile是否可以,不可以的话用什么方法 展开
图片就在服务端
主要是一个批量的程序,把服务端一个目录下的图片全部传入数据库
http://zhidao.baidu.com/question/354822093.html
告诉我大概思路也行,比如用fso.opentextfile是否可以,不可以的话用什么方法 展开
展开全部
可以试试用ADODB.Stream这个组件,这是ADO默认安装的,大多数ASP空间都支持的一个组件.
该组件支持二进制文件的读写操作,可以试试.
Set aso = CreateObject("ADODB.Stream")
aso.Mode = 3
aso.Type = 1
aso.Open
aso.LoadFromFile("文件的本地路径")
bstr = aso.Read(-1)
aso.Close
Set aso = Nothing
bstr 即为二进制内容.
该组件支持二进制文件的读写操作,可以试试.
Set aso = CreateObject("ADODB.Stream")
aso.Mode = 3
aso.Type = 1
aso.Open
aso.LoadFromFile("文件的本地路径")
bstr = aso.Read(-1)
aso.Close
Set aso = Nothing
bstr 即为二进制内容.
追问
如果把bstr存入数据库用什么方法呢?
rs("img") = bstr
还是其他的?
追答
用 AppendChunk 和 GetChunk 方法对包含长二进制或长字符数据的字段值进行操作。
查一下ADO手册, RecordSet对象相关章节, 有一些官方的示例你可以参考.
展开全部
参照以下代码,例子是直接将图片存入数据库,路径存储可以仿照
protected void Button1_Click(object sender, EventArgs e)
{
if (DropDownList2.SelectedItem.Text.Trim() == "")
{
Label1.Text = "提示:请选择图片类型!!";
return;
}
if (FileUpload1.HasFile)
{
string fileContentType = FileUpload1.PostedFile.ContentType;
if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
string fileName = file.Name; // 文件名称
if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=OraOLEDB.Oracle.1;Data Source=sdsfc;user id=shp;password=shp";
conn.Open();
string cmd = "update shp.CMCS_SFC_IMEIPRINT_FUNCTION set PICTURE_NAME=:PICTURENAME,PICTURE=:PICTURE where BARCODE_TYPE='" + DropDownList2.SelectedItem.Text.Trim() + "'";
OleDbCommand sql = new OleDbCommand(cmd, conn);
HttpPostedFile UpFile = FileUpload1.PostedFile;
int FileLength = UpFile.ContentLength;
Byte[] FileByteArray = new byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObject = UpFile.InputStream;//建立数据流对像
StreamObject.Read(FileByteArray, 0, FileLength);//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
sql.Parameters.Add(":PICTURENAME", OleDbType.VarChar, 50).Value = fileName; //记录文件类型
sql.Parameters.Add(":PICTURE", OleDbType.LongVarBinary, FileLength).Value = FileByteArray;
sql.ExecuteNonQuery();
conn.Close();
Label1.Text = "提示:文件“" + fileName + "”成功上传";
}
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}
else
{
Label1.Text = "提示:文件已经存在,请重命名后上传";
}
}
else
{
Label1.Text = "提示:文件类型不符";
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (DropDownList2.SelectedItem.Text.Trim() == "")
{
Label1.Text = "提示:请选择图片类型!!";
return;
}
if (FileUpload1.HasFile)
{
string fileContentType = FileUpload1.PostedFile.ContentType;
if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
string fileName = file.Name; // 文件名称
if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=OraOLEDB.Oracle.1;Data Source=sdsfc;user id=shp;password=shp";
conn.Open();
string cmd = "update shp.CMCS_SFC_IMEIPRINT_FUNCTION set PICTURE_NAME=:PICTURENAME,PICTURE=:PICTURE where BARCODE_TYPE='" + DropDownList2.SelectedItem.Text.Trim() + "'";
OleDbCommand sql = new OleDbCommand(cmd, conn);
HttpPostedFile UpFile = FileUpload1.PostedFile;
int FileLength = UpFile.ContentLength;
Byte[] FileByteArray = new byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObject = UpFile.InputStream;//建立数据流对像
StreamObject.Read(FileByteArray, 0, FileLength);//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
sql.Parameters.Add(":PICTURENAME", OleDbType.VarChar, 50).Value = fileName; //记录文件类型
sql.Parameters.Add(":PICTURE", OleDbType.LongVarBinary, FileLength).Value = FileByteArray;
sql.ExecuteNonQuery();
conn.Close();
Label1.Text = "提示:文件“" + fileName + "”成功上传";
}
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}
else
{
Label1.Text = "提示:文件已经存在,请重命名后上传";
}
}
else
{
Label1.Text = "提示:文件类型不符";
}
}
}
更多追问追答
追问
别告诉我这是JSP的
追答
ASP.NET, 你要的是JSP吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询