///
PreparedStatement ps=conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,fis.available());//fis 为FileInputStream对象
ps.executeUpdate();
//sqlserver数据库对应的列类型为image
但是,运行结果出现错误提示:
[Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。
怎么样才能解决这个问题!
15 个解决方案
#1
ding
#2
怎么把图片读到一个变量里边的
谢谢
谢谢
#3
帮忙顶着有分,不够再家1
#4
上传图片的思想和步骤是什么?
#5
File file1=new File(image1);
FileInputStream fis=new FileInputStream(file1);
String fileName=file1.getName();
String table=movKind;//电影类型
String sql="insert into "+table+" values('";
sql=sql+title+"','"+actor+"','"+pubTime+"','"+pubArea+"',"+"?";
sql=sql+",'"+content+"','"+filesNum+"','"+0+"','"+uploadTime;
sql=sql+"','"+movieAdd+"','"+filmLevel+"')";
out.println(sql);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:myDB");
PreparedStatement ps=conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,fis.available());
ps.executeUpdate();
ps.close();
fis.close();
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
System.out.println("ok!");
%>
FileInputStream fis=new FileInputStream(file1);
String fileName=file1.getName();
String table=movKind;//电影类型
String sql="insert into "+table+" values('";
sql=sql+title+"','"+actor+"','"+pubTime+"','"+pubArea+"',"+"?";
sql=sql+",'"+content+"','"+filesNum+"','"+0+"','"+uploadTime;
sql=sql+"','"+movieAdd+"','"+filmLevel+"')";
out.println(sql);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:myDB");
PreparedStatement ps=conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,fis.available());
ps.executeUpdate();
ps.close();
fis.close();
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
System.out.println("ok!");
%>
#6
你要设置上传的文件的大小,否则文件大了缺省植就会报错了。在sql 中加入 set textsiz 10000000 ;yoursql;
#7
什么意思?
#8
"set textsize 10000000;sql;"??
是不是这样?
是不是这样?
#9
尝试过了,任然没用!
#10
再问!
#11
prestmt.setBinaryStream(5,fis,(int)file.length());
是长度没设够吧
是长度没设够吧
#12
再问!
#13
原因找出了,是因为数据类型与数据库中的数据类型不匹配。
#14
原因找出了,是因为数据类型与数据库中的数据类型不匹配。
#15
难道不是image类型吗?
#1
ding
#2
怎么把图片读到一个变量里边的
谢谢
谢谢
#3
帮忙顶着有分,不够再家1
#4
上传图片的思想和步骤是什么?
#5
File file1=new File(image1);
FileInputStream fis=new FileInputStream(file1);
String fileName=file1.getName();
String table=movKind;//电影类型
String sql="insert into "+table+" values('";
sql=sql+title+"','"+actor+"','"+pubTime+"','"+pubArea+"',"+"?";
sql=sql+",'"+content+"','"+filesNum+"','"+0+"','"+uploadTime;
sql=sql+"','"+movieAdd+"','"+filmLevel+"')";
out.println(sql);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:myDB");
PreparedStatement ps=conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,fis.available());
ps.executeUpdate();
ps.close();
fis.close();
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
System.out.println("ok!");
%>
FileInputStream fis=new FileInputStream(file1);
String fileName=file1.getName();
String table=movKind;//电影类型
String sql="insert into "+table+" values('";
sql=sql+title+"','"+actor+"','"+pubTime+"','"+pubArea+"',"+"?";
sql=sql+",'"+content+"','"+filesNum+"','"+0+"','"+uploadTime;
sql=sql+"','"+movieAdd+"','"+filmLevel+"')";
out.println(sql);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:myDB");
PreparedStatement ps=conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,fis.available());
ps.executeUpdate();
ps.close();
fis.close();
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
System.out.println("ok!");
%>
#6
你要设置上传的文件的大小,否则文件大了缺省植就会报错了。在sql 中加入 set textsiz 10000000 ;yoursql;
#7
什么意思?
#8
"set textsize 10000000;sql;"??
是不是这样?
是不是这样?
#9
尝试过了,任然没用!
#10
再问!
#11
prestmt.setBinaryStream(5,fis,(int)file.length());
是长度没设够吧
是长度没设够吧
#12
再问!
#13
原因找出了,是因为数据类型与数据库中的数据类型不匹配。
#14
原因找出了,是因为数据类型与数据库中的数据类型不匹配。
#15
难道不是image类型吗?