2018-06-12 16:09
@hankingxu 照着 jfinal 的 FileRender 做一个 MyFileRender 出来即可,大致方法如下:
1: 先拷贝 FileRender 中所有的代码到 MyFilRender 中去
2:删掉 rangeRender() 这个方法(这个是用于断点续传的)
3:关键点在于改造 normalRender() 方法中的new BufferedInputStream(...) , 将原来的从 FileInputStream 中读取数据改成从你数据来源的那个流里面读取。
这样做的好处就是可以避免掉你以往的构建实体文件的环节
当然,上面是主要过程,里头可能有一些小细节,都不重要了
记得搞定后,回来在分享频道分享出来
2018-06-12 15:28
@hankingxu 这个不是本质问题, 如果你只是 new File(...) ,但并没有往 FileOutputStream 这种流里面写东西,文件仍然是不会创建的
无论如何,jfinal 是不会帮你创建下载文件的,仔细查看一下自己的相关代码
2018-06-12 15:25
@songsong123 去掉 sql 后面的分号, 每次只执行一条 sql
Db.update("DROP TABLE IF EXISTS `file_info`");
String sql = "CREATE TABLE 'file_info' ("
+"'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
+"'name' TEXT(200),'path' TEXT(200))");
Db.update(sql);
JDBC 可以执行,而 jfinal 下不能执行,有可能是 druid 这类第三方对中间有分号的语句可能有所保护,防止 sql 注入
还有一个办法是用纯 JDBC 的方式获取一个 DataSource,然后将这个对象传入 ActiveRecordPlugin(dataSource), 这样的话中间就没有第三方了
jfinal 数据库操作在本质上就是 JDBC
2018-06-11 21:53
@JFinal 有可能是 JDBC 驱动的 bug ,无法反射得出 uuid 这个字段名,升级一下 JDBC 驱动试试
2018-06-11 21:52
@aqiang 改成别的字段名呢? 例如改成 aaa 试一下