PHP读取本地文件,就像刚刚上传一样

时间:2014-11-25 18:22:22

标签: php file-upload

我有一系列处理文件上传的功能;验证上传的文件(检查大小,类型等),然后将上传的文件发送到Cloudfiles - 这一切都正常。

我想使用相同的功能将本地文件(以前上传并保存到网络服务器的文件)保存到Cloudfiles。

是否可以像刚刚上传的那样打开本地文件,即格式为:

array(
  'name' => '',
  'type' => '',
  'tmp_name' => '',
  'error' => '',
  'size' => ''
);

我猜我需要手动重新创建这个结构 - 如果是这样,我将如何保存文件内容?

或者,我是否应该更改现有的验证功能以接收不同格式的文件数据?

1 个答案:

答案 0 :(得分:0)

不,它们根本不同。

name是客户端文件的名称。我想你可以用磁盘上的文件名替换。

type是内容类型(通常称为MIME类型),它不是由许多文件系统存储的。您必须use magic numbers根据文件内容检测类型。或者,如果有扩展名,您可以猜测文件类型。两种方法都有其缺点。

tmp_name完全不相关,因为您已经在磁盘上安装了该文件。

error没有意义,因为文件没有上传,因此没有进行任何操作。

size是你唯一可以复制的东西。

我不明白为什么你还需要所有这些信息。客户端的这些信息都不应用于任何类型的验证。