在c#中如何把图片上传到oralce的blob字段?

2025-02-23 10:18:54
推荐回答(1个)
回答1:

这是我自己写的一个ORACLE的图片上传,这里用到了一个apache的一个组件,fileupload,你自己在网上下载吧,很方便用的。
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

import oracle.sql.BLOB;

import org.apache.struts.upload.FormFile;
import org.apache.struts.upload.MultipartRequestHandler;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
* @author Lenovo-User
*
*/
public class UploadFileAction extends Action {

/* (non-Javadoc)
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@SuppressWarnings("deprecation")
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
UploadFileForm fForm = (UploadFileForm)form;
DataSource ds = this.getDataSource(request);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
//PersonBean pb = (PersonBean)request.getSession().getAttribute(Constants.PERSON_KEY);
String strId = request.getParameter("id");
int id = 0;
if(strId != null)
id = Integer.parseInt(strId);
ResultSet rs = stmt.executeQuery("select * from user_account where id=" + id + " for update");
rs.next();
oracle.sql.BLOB blob = (BLOB) rs.getBlob(4);
OutputStream out = blob.getBinaryOutputStream();
int bufferSize = blob.getBufferSize();
InputStream in = fForm.getMyFile().getInputStream();
byte bytes[] = new byte[bufferSize];

while(in.read(bytes) != -1 ) {
out.write(bytes, 0, bufferSize);
}

in.close();
out.flush();//后来添加的
out.close();
rs.close();
stmt.close();
conn.commit();//后来添加的!必须要提交,不管是不是数据库是不是自动 提交
conn.close();

return mapping.findForward("success");
}

}

不懂的可以问我