CI框架解决无法上传0字节文件问题

当使用CI框架进行开发时,发现这样一个小问题,文件上传的时候,一切都正常,但是当上传0字节文件的时候(以.txt文件为例),报出以下错误:


那么为什么明明设置的上传允许类型有,但是还显示类型在禁止上传之列呢?

经过一番查询资料,才得知原来是mimes.php中没有对应的类型,才导致上传类判断没有对应的类型。


那么首先我们先获取这个文件的mime类型(如下):

在CI目录下system/libraries/Upload.php找到(并添加红框中的内容):


然后回到页面中选择0字节文件,点击上传,会输出如下内容:


说明0字节的.txt文件mime类型是这,我们只需要在mimes.php中加上对应的类型即可。


然后  保存,回去,发现可以了,大功告成。类似的错误都可以这样解决。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
第1章 初识Hadoop 数据!数据! 数据存储与分析 与其他系统相比 关系型数据库管理系统 网格计算 志愿计算 1.3.4 Hadoop 发展简史 Apache Hadoop和Hadoop生态圈 第2章 关于MapReduce 一个气象数据集 数据的格式 使用Unix工具进行数据分析 使用Hadoop分析数据 map阶段和reduce阶段 横向扩展 合并函数 运行一个分布式的MapReduce作业 Hadoop的Streaming Ruby版本 Python版本 Hadoop Pipes 编译运行 第3章 Hadoop分布式文件系统 HDFS的设计 HDFS的概念 数据块 namenode和datanode 命令行接口 基本文件系统操作 Hadoop文件系统 接口 Java接口 从Hadoop URL中读取数据 通过FileSystem API读取数据 写入数据 目录 查询文件系统 删除数据 数据流 文件读取剖析 文件写入剖析 一致模型 通过 distcp并行拷贝 保持 HDFS 集群的均衡 Hadoop的归档文件 使用Hadoop归档文件 不足 第4章 Hadoop I/O 数据完整性 HDFS的数据完整性 LocalFileSystem ChecksumFileSystem 压缩 codec 压缩和输入切分 在MapReduce中使用压缩 序列化 Writable接口 Writable类 实现定制的Writable类型 序列化框架 Avro 依据文件的数据结构 写入SequenceFile MapFile 第5章 MapReduce应用开发 配置API 合并多个源文件 可变的扩展 配置开发环境 配置管理 辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 获取结果 作业调试 使用远程调试器 作业调优 分析任务 MapReduce的工作流 将问题分解成MapReduce作业 运行独立的作业 第6章 MapReduce的工作机制 剖析MapReduce作业运行机制 作业的提交 作业的初始化 任务的分配 任务的执行 进度和状态的更新 作业的完成 失败 任务失败 tasktracker失败 jobtracker失败 作业的调度 Fair Scheduler Capacity Scheduler shuffle和排序 map端 reduce端 配置的调优 任务的执行 推测式执行 重用JVM 跳过坏记录 任务执行环境 第7章 MapReduce的类型与格式 MapReduce的类型 默认的MapReduce作业 输入格式 输入分片与记录 文本输入 二进制输入 多种输入 数据库输入(和输出) 输出格式 文本输出 二进制输出 多个输出 延迟输出 数据库输出 第8章 MapReduce的特性 计数器 内置计数器 用户定义的Java计数器 用户定义的Streaming计数器 排序 准备 部分排序 总排序 二次排序 联接 map端联接 reduce端联接 边数据分布 利用JobConf来配置作业 分布式缓存 MapReduce库类 第9章 构建Hadoop集群 集群规范 网络拓扑 集群的构建和安装 安装Java 创建Hadoop用户 安装Hadoop 测试安装 SSH配置 Hadoop配置 配置管理 环境设置 Hadoop守护进程的关键属性 Hadoop守护进程的地址和端口 Hadoop的其他属性 创建用户帐号 安全性 Kerberos和Hadoop 委托令牌 其他安全性改进 利用基准测试程序测试Hadoop集群 Hadoop基准测试程序 用户的作业 云上的Hadoop Amazon EC2上的Hadoop 第10章 管理Hadoop HDFS 永久性数据结构 安全模式 日志审计 工具 监控 日志 度量 Java管理扩展(JMX) 维护 日常管理过程 委任节点和解除节点 升级 第11章 Pig简介 安装与运行Pig 执行类型 运行Pig程序 Grunt Pig Latin编辑器 示例 生成示例 与数据库比较 PigLatin 结构 语句 表达式 1.4.4 类型 模式 函数 用户自定义函数 过滤UDF 计算UDF 加载UDF 数据处理操作 加载和存储数据 过滤数据 分组与连接数据 对数据进行排序 组合和分割数据 Pig实战 并行处理 参数代换 第12章 Hive 1.1 安装Hive 1.1.1 Hive外壳环境 1.2 示例 1.3 运行Hive 1.3.1 配置Hive 1.3.2 Hive服务 1.3.3 Metastore 1.4 和传统数据
### 回答1: 使用文件字节输入流和文件字节输出流可以实现文件的复制。具体步骤如下: 1. 创建文件字节输入流对象,用于读取源文件。 2. 创建文件字节输出流对象,用于写入目标文件。 3. 定义一个字节数组,用于存储读取的数据。 4. 使用循环读取源文件中的数据,并将读取的数据写入目标文件中。 5. 关闭文件字节输入流和文件字节输出流。 示例代码如下: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { String sourceFilePath = "source.txt"; // 源文件路径 String targetFilePath = "target.txt"; // 目标文件路径 try { // 创建文件字节输入流对象 FileInputStream fis = new FileInputStream(sourceFilePath); // 创建文件字节输出流对象 FileOutputStream fos = new FileOutputStream(targetFilePath); // 定义一个字节数组,用于存储读取的数据 byte[] buffer = new byte[1024]; // 使用循环读取源文件中的数据,并将读取的数据写入目标文件中 int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } // 关闭文件字节输入流和文件字节输出流 fis.close(); fos.close(); System.out.println("文件复制成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` ### 回答2: 文件复制就是将源文件的内容复制到目标文件中,Java中可以使用文件字节输入流和文件字节输出流来实现文件的复制。 文件字节输入流用于读取文件数据,文件字节输出流用于写入数据到文件中。系统会根据输入流和输出流的位置进行数据的传输。文件字节输入流和文件字节输出流都是字符流,但是操作的是二进制数据,因此可以复制各种类型的文件,如文本文件、音频文件、视频文件等。 下面是使用文件字节输入流和文件字节输出流实现文件复制的步骤: 1. 创建文件输入流和输出流,指定源文件和目标文件的路径。 FileInputStream fis = new FileInputStream("sourceFilePath"); FileOutputStream fos = new FileOutputStream("targetFilePath"); 2. 根据文件输入流创建字节输入流对象,根据文件输出流创建字节输出流对象。 BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputStream bos = new BufferedOutputStream(fos); 3. 使用循环读取输入流中的数据,并写入到输出流中。 byte[] buffer = new byte[1024]; int len; while ((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len); } 4. 关闭输入流和输出流。 bis.close(); bos.close(); 使用文件字节输入流和文件字节输出流实现文件复制,可以保证文件内容的完整性,且具有较高的传输速度。但是需要注意,对于大文件的复制,要避免一次将整个文件读取到内存中,应当使用缓冲区进行分段读取。同时,还需要处理异常,确保程序的稳定性。 ### 回答3: 文件的复制是计算机操作中的常见需求,通过使用文件字节输入流和文件字节输出流可以实现文件的复制。下面是实现文件复制的具体步骤: 1. 创建文件字节输入流和文件字节输出流对象,并分别指定源文件和目标文件的路径。 ```java InputStream fis = new FileInputStream("source.txt"); OutputStream fos = new FileOutputStream("target.txt"); ``` 2. 读取源文件的内容,并将读取到的内容写入目标文件中。 ```java byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } ``` 3. 刷新输出流,并关闭输入流和输出流。 ```java fos.flush(); fis.close(); fos.close(); ``` 通过以上步骤,即可实现文件复制功能。需要注意的是,复制文件时需要保证目标文件的路径是正确的,否则可能出现文件写入失败的情况。同时,读取和写入的缓冲区大小需要根据实际需求进行调整,过大或过小都可能影响到复制效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾飞君

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值