怎么把图片转化成二进制存进数据库要求完整过程
答案:2 悬赏:10 手机版
解决时间 2021-02-05 16:06
- 提问者网友:斑駁影
- 2021-02-05 00:56
要求加注释解释清楚,把变量的名也标上
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-02-05 02:33
出,直到EOF(文件结束符)。当然写出时要按数据库约定的方式。
下面作为普通文件输出
FILE *fin,*fout;
void main()
{
int c;
fin=fopen( "duck.jpg","rb"); // 作为2二进制文件打开
fout=fopen("tmp.jpg","wb");
while(1){
c=fgetc(fin); // 一个字节一个字节地读入
if (feof(fin)) break; // 直到EOF
fputc ( c , fout ); // 改此句,让它符合数据库约定。
}
}
下面作为普通文件输出
FILE *fin,*fout;
void main()
{
int c;
fin=fopen( "duck.jpg","rb"); // 作为2二进制文件打开
fout=fopen("tmp.jpg","wb");
while(1){
c=fgetc(fin); // 一个字节一个字节地读入
if (feof(fin)) break; // 直到EOF
fputc ( c , fout ); // 改此句,让它符合数据库约定。
}
}
全部回答
- 1楼网友:三千妖杀
- 2021-02-05 03:24
回答第二个问题: 要循环输出图片,可以用一个普通的http处理文件,当有特定的路径请求时,http处理程序用于执行代码 handler.ashx public class handler : ihttphandler { public void processrequest (httpcontext context) { string imgid = context.request.querystring["imgid"]; sqlconnection conn = new sqlconnection("data source=.;initial catalog=test;integrated security=true"); string strsql = "select * from imagefiles where id="+ imgid; sqlcommand cmd = new sqlcommand(strsql, conn); conn.open(); sqldatareader reader = cmd.executereader(); if (reader.read()) { context.response.contenttype = "image/jpeg"; context.response.binarywrite((byte[])reader["imagefile"]); context.response.end(); reader.close(); } } upphoto.aspx <body> <form id="form1" runat="server" enctype="multipart/form-data" > <div> <asp:fileupload id="upphoto" runat="server" /> <asp:button id="btnadd" runat="server" text="上传" onclick="btnadd_click" /> <hr /> <asp:gridview id="gridview1" runat="server" autogeneratecolumns="false" datakeynames="id" datasourceid="sqldatasource1"> <columns> <asp:boundfield datafield="id" headertext="id" insertvisible="false" readonly="true" sortexpression="id" /> <asp:templatefield> <itemtemplate> <asp:image id="image1" runat="server" imageurl='<%# eval("id","~/handler.ashx?imgid={0}") %>' /> </itemtemplate> </asp:templatefield> </columns> </asp:gridview> <asp:sqldatasource id="sqldatasource1" runat="server" connectionstring="<%$ connectionstrings:testconnectionstring2 %>" selectcommand="select * from [imagefiles]"></asp:sqldatasource> </div> </form> </body> upphoto.aspx.cs public partial class _default : system.web.ui.page { protected void page_load(object sender, eventargs e) { } protected void btnadd_click(object sender, eventargs e) { httppostedfile hpf = upphoto.postedfile; int upphotolength = hpf.contentlength; byte[] photoarray = new byte[upphotolength]; stream photostream = hpf.inputstream; photostream.read(photoarray, 0, upphotolength); sqlconnection conn = new sqlconnection("data source=.;initial catalog=test;integrated security=true"); string strsql = "insert into imagefiles values(@image)"; sqlcommand cmd = new sqlcommand(strsql, conn); cmd.parameters.add("@image", sqldbtype.image).value = photoarray; conn.open(); cmd.executenonquery(); conn.close(); gridview1.databind(); } } 我的数据库用sql2005,叫test只有一个字段image类型存放图片
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯