添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
暴走的小熊猫  ·  搜索 JSON Blob - Azure ...·  1 周前    · 
英俊的黑框眼镜  ·  GitHub - ...·  1 周前    · 
腹黑的日光灯  ·  Node.js 中 ...·  1 周前    · 
冷静的消炎药  ·  YG SELECT TALK | ...·  3 周前    · 
时尚的砖头  ·  [Android] Bad z-index ...·  4 月前    · 
豪情万千的风衣  ·  IKEv2 AES-256-GCM and ...·  5 月前    · 

file类型需要转换为byte[],ibatis可以直接将byte[]类型存储进blob

`package com.yinhai.team.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionContext;
import com.yinhai.sysframework.dto.ParamDTO;
import com.yinhai.team.service.StaffTechTreeService;
import com.yinhai.webframework.BaseAction;

@Namespace(“/team”)
@Action(value = “uploadAction”, results = { @Result(name = “success”, location = “/kfzgl/team/upload.jsp”) })
public class UploadAction extends BaseAction {
private StaffTechTreeService staffTechTreeService = (StaffTechTreeService) getService(“staffTechTreeService”);
private File files;// 对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String filesFileName;// 上传输入域FileName 文件名
private String filesContentType;// 上传文件的MIME类型

public String execute() {
    return SUCCESS;
 * 上传文件
 * @return
 * @throws Exception
public String testUplod() throws Exception {
    System.out.println(filesContentType);
    try {
        ServletContext sc = ServletActionContext.getServletContext();
        String storePath = sc.getRealPath("/files");
        FileUtils.copyFile(files, new File(storePath, filesFileName));
        ActionContext.getContext().put("message", "上传成功!");
    } catch (Exception e) {
        setMsg("下载失败", "error");
        e.printStackTrace();
    FileInputStream fi = readImage(files);
    byte a[] = null;// **将测试文件test.doc读入此字节数组
    ParamDTO dto = getDto();
    dto.put("id", "14");
    int len = (int) files.length();
    a = new byte[len];
    int i = 0;
    int itotal = 0;
    // 将文件读入字节数组
    for (; itotal < len; itotal = i + itotal) {
        i = fi.read(a, itotal, len - itotal);
    fi.close();
    dto.put("content", a);
    staffTechTreeService.insertTest(dto);
    return JSON;
public File getFiles() {
    return files;
public void setFiles(File files) {
    this.files = files;
public String getFilesFileName() {
    return filesFileName;
public void setFilesFileName(String filesFileName) {
    this.filesFileName = filesFileName;
public String getFilesContentType() {
    return filesContentType;
public void setFilesContentType(String filesContentType) {
    this.filesContentType = filesContentType;
 * 得到blob文件
 * @return
 * @throws IOException
 * @throws SQLException
@SuppressWarnings("unchecked")
public String getBlob() throws IOException, SQLException {
    ParamDTO dto = getDto();
    dto.put("id", "14");
    List<Map<String, Object>> list = getDao().queryForList("stafftechtree.ghlx_document_sel", dto);
    Blob blob = (Blob) list.get(0).get("content");
    OutputStream op = new FileOutputStream(new File("d:\\song\\a.jpg"));
    op.write(blob.getBytes(1, (int) blob.length()));
    op.close();
    return JSON;
 * 将文件转换为二进制流
 * @throws FileNotFoundException
public FileInputStream readImage(File file) throws FileNotFoundException {
    return new FileInputStream(file);
 * 获取文件的Base64
 * @param file      {File}      文件
 * @param callback  {Function}  回调函数,参数为获取到的base64
function fileToBase64(file, callback) {
  const fileReader = new FileReader()
  fileReader.read
                                    记录一下比较常见的图片格式(FileBlob、base64)在不同的场景他们之间的相互转换的方法。BlobBLOB(binary large object): 二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。属性名称读/写描述size只读Blob 对象中所包含数据的大小(字节)。type只读一个字符串,表明该Blob对象所包含数据的MIME类型。如果类型未知,则该值为空字符串。例如 “image/png”File。
                                    base64、fileblob用JS进行互转的方法大全【前端】,作为前端项目开发,经常会遇到图片文件的处理,下面总结一下关于 Base64、File对象和Blob 的相互转换大全。包括:file 对象转 base64、base64 直接转换file、base64 转换blobblob 转换file
 1:先往表中插入数据,insert into tablename (BLOB字段名) values(empty_blob())
 2:取出BLOB写入文件在更新到数据库
if (result.next()) {
BLOB blob = (BLOB) result.getBlob("BLOB字段名");
OutputStream out = blob....
                                    import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.sql.Blob;import java.sq...
                                    我们在《如何在浏览器中处理二进制数据?》这一篇中提到了Blob对象。?? Blob 是 Binary Large Object 的缩写,Blob 对象表示一个不可变、原始数据的类文件对象。实际上这是一个从ES5开始就逐步被浏览器支持的特性,它让我们能够比较方便地处理文件式的二进制数据。Blob对象被浏览器“视同文件”。一个最直接的应用例子是,当我们需要在网页中预览本地图片时,我们不必将图...
readAsBinaryString(Blob| File) :返回二进制字符串
readAsText(Blob | File,opt_encoding):返回文本字符串
readAsDataURL(Blob | File) : 返回一个基于base64 编码的data-uri 对象
                                    import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.sql.Blob;import java.sq...
                                    准备先把以前写的持久层及表示层框架写完再写loonframework-game包(实际上是想自己业余建站用,用现成的框架太无聊,重复发明轮子的最大意义就在于解闷……),在2005年时写过一个开头,由于自己没有整理文档,现在拿起来就觉得代码很乱,又懒于写文档,于是把一些心得类的东西整理一下,用以备忘。在此持久层框架中,我将持久化过程分为两个松耦合模块,第一模块封装jdbc操作,隐藏Connectio