我已经有很好的解决办法了!:)
其实二进制上传中,在form表单里不必加上enctype="multipart/form-data",提交后新建image为文件类型,然后取得文件的长度,设置它为FileInputStream方式,以setBinaryStream('',fis,l2)方式存入数据库就行了,很简单!
下面是我的代码:
public void AddAllLink(LinkInfo link) throws Exception {
Connection con=DatabaseConn.getConnection();
java.io.File file=new java.io.File(link.getImage());
String name=file.getName();
long l1=file.length();
int l2=(int)l1;
java.io.FileInputStream fis=new java.io.FileInputStream(file);
String sql="insert into tbl_link (typeid,title,url,image,image_ext,dead_line) values(?,?,?,?,?,?)";
PreparedStatement stm=con.prepareStatement(sql);
stm.setInt(1,link.getTypeid());
stm.setString(2,DbTrans.encode(link.getTitle()));
stm.setString(3,DbTrans.encode(link.getUrl()));
stm.setBinaryStream(4,fis,l2);
stm.setString(5,name);
stm.setDate(6,java.sql.Date.valueOf(link.getDead_line()));
stm.execute();
stm.close();
con.close();
}<form name="form1" method="post" action="">
<table width="37%" border="0" align="center">
<tr><td>
类别:<select name="typeid"></select></td></tr>
<tr><td>题目:<input name="title" type="text" value=""></td></tr>
<tr><td>网址:<input name="url" type="text" value=""></td></tr>
<tr><td>有效时期:<input name="dead_line" type="text" value="">
<IMG alt=选择正确的时间 onclick='fCalendarDlg(dead_line);return false' src='../date/datetime.gif' width='16' height='16'>
</td></tr>
<tr><td>图片:<input name="image" type="file" value=""></td></tr>
<tr><td>
<input class=buttonface type="submit" name="submit" value=" 确定 ">
<input class=buttonface type="submit" name="Reset" value=" 取消 " onClick="window.close()">
</td></tr>
</table>
</form>String submit=request.getParameter("submit");
if(submit!=null) {
link.AddAllLink(info);
out.print("信息已更改!三秒钟后自动返回!");
%>
<script language="javascript">
setTimeout("window.location='index.jsp'","3000");
</script>还得请大家评价评价!:)
其实二进制上传中,在form表单里不必加上enctype="multipart/form-data",提交后新建image为文件类型,然后取得文件的长度,设置它为FileInputStream方式,以setBinaryStream('',fis,l2)方式存入数据库就行了,很简单!
下面是我的代码:
public void AddAllLink(LinkInfo link) throws Exception {
Connection con=DatabaseConn.getConnection();
java.io.File file=new java.io.File(link.getImage());
String name=file.getName();
long l1=file.length();
int l2=(int)l1;
java.io.FileInputStream fis=new java.io.FileInputStream(file);
String sql="insert into tbl_link (typeid,title,url,image,image_ext,dead_line) values(?,?,?,?,?,?)";
PreparedStatement stm=con.prepareStatement(sql);
stm.setInt(1,link.getTypeid());
stm.setString(2,DbTrans.encode(link.getTitle()));
stm.setString(3,DbTrans.encode(link.getUrl()));
stm.setBinaryStream(4,fis,l2);
stm.setString(5,name);
stm.setDate(6,java.sql.Date.valueOf(link.getDead_line()));
stm.execute();
stm.close();
con.close();
}<form name="form1" method="post" action="">
<table width="37%" border="0" align="center">
<tr><td>
类别:<select name="typeid"></select></td></tr>
<tr><td>题目:<input name="title" type="text" value=""></td></tr>
<tr><td>网址:<input name="url" type="text" value=""></td></tr>
<tr><td>有效时期:<input name="dead_line" type="text" value="">
<IMG alt=选择正确的时间 onclick='fCalendarDlg(dead_line);return false' src='../date/datetime.gif' width='16' height='16'>
</td></tr>
<tr><td>图片:<input name="image" type="file" value=""></td></tr>
<tr><td>
<input class=buttonface type="submit" name="submit" value=" 确定 ">
<input class=buttonface type="submit" name="Reset" value=" 取消 " onClick="window.close()">
</td></tr>
</table>
</form>String submit=request.getParameter("submit");
if(submit!=null) {
link.AddAllLink(info);
out.print("信息已更改!三秒钟后自动返回!");
%>
<script language="javascript">
setTimeout("window.location='index.jsp'","3000");
</script>还得请大家评价评价!:)
建议楼主:文件(blob)
在actionForm中建两个参数:
文件名称(FormFile),文件类型(String)
在进库的时候记得要转byte[]:
byte[] 文件名称别名 = new byte[文件名称.getFileSize()];
文件名称.getInputStream().read(文件名称别名);
你好!
在进库的时候记得要转byte[]:
byte[] 文件名称别名 = new byte[文件名称.getFileSize()];
文件名称.getInputStream().read(文件名称别名);你的这个和我的有什么区别吗?从客户端可以上传到服务器端吗?
File file = myUpload.getFiles().getFile(0);
if (!file.isMissing()){
byte[] bytArray = new byte[file.getSize()];
for (int i= 0 ;i<file.getSize();i++) {
bytArray[i] = file.getBinaryData(i);
}
}
这样通过循环得到:)