📄 uploadimage.java
字号:
package ch14.binaryFile;
import java.sql.*;
import java.io.*;
import java.nio.*;
import ch14.datasource.*;
public class UploadImage {
public boolean storeImage(String sqlstr, File file) {
try {
//打开文件
FileInputStream fin = new FileInputStream(file);
//建一个缓冲保存数据
ByteBuffer nbf = ByteBuffer.allocate((int) file.length());
byte[] array = new byte[1024];
int offset = 0, length = 0;
//读存数据
while ((length = fin.read(array)) > 0) {
if (length != 1024)
nbf.put(array, 0, length);
else
nbf.put(array);
offset += length;
}
//关闭文件
fin.close();
//新建一个数组保存要写的内容
byte[] content = nbf.array();
//保存数据
return setImage(sqlstr, content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//如果发生文件读写错误都会返回false
return false;
}
private boolean setImage(String sqlstr, byte[] in) {
boolean flag = false;
if (sqlstr == null)
sqlstr = "select * from picture_table";
try {
Connection conn = SqlTestDS.getConnection();
Statement stmt =
conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sqlstr);
if (rs.next()) {
rs.updateBytes(2, in);
rs.updateRow();
} else {
rs.moveToInsertRow();
rs.updateString(1, "01");
rs.updateBytes(2, in);
rs.insertRow();
}
rs.close();
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
//测试
public static void main(String[] args) {
UploadImage upload = new UploadImage();
try {
File file = new File("01.jpg");
if (upload.storeImage(null, file))
System.out.println("true");
else
System.out.println("false");
} catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -