php - Symfony UploadedFile 未上传

标签 php symfony file-upload is-uploaded-file

我正在尝试从现有文件创建一个 UploadedFile。但它没有成功上传,也没有显示任何错误。

这是我的代码

   $encoded_data = "This is a huge string";
   $filename = "tempFile";
   $handle = fopen($_SERVER['DOCUMENT_ROOT'].$filename, "a+")
   file_put_contents($_SERVER['DOCUMENT_ROOT'].$filename, $encoded_data);
   $file = new UploadedFile($_SERVER['DOCUMENT_ROOT'].$filename, $filename, null, filesize($_SERVER['DOCUMENT_ROOT'].$filename));
   var_dump($file->getClientSize());
   var_dump($file->getError());
   var_dump($file->isValid());
   var_dump(is_uploaded_file($file));

结果是

int 21
int 0
boolean false
boolean false

我确定 tempFile 存在于文档根目录中!

最佳答案

is_uploaded_file() 将检查文件是否确实已上传,因此它不适用于您的代码,因为文件尚未 已上传。这就是 isValid() 也返回 false 的原因,因为它使用 is_file_uploaded() 来检查文件。 一旦这样说,UploadedFile 确实有一个 $test 参数,如果设置为 true,将使 isValid() 不检查文件是否实际上传。这用于测试,实际上没有上传任何文件。您可以将此参数设置为 true,然后 isValid() 将为您的文件返回 true。这是一个黑客,但也许是你需要的

关于php - Symfony UploadedFile 未上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188870/

相关文章:

php - 如何在 Laravel 5.4 中添加自定义用户提供程序

php - 如何根据从 Symfony2 中的另一个列表中选择的值从一个选择列表中获取值?

php - 如何从服务中生成 Assets URL?

php - 使用PHP上传文件时出错

php - 将 php stdClass 对象保存在 mysql 表字段中

php - 拒绝直接 url 访问在 ajax 上调用的 php 文件

php - shell_exec() 超时管理 & exec()

javascript - Symfony2 + Doctrine + FormType,关系和动态添加行

php - 发出请求并处理可​​续传上传的响应 : Google Drive api [php]

apache - 上传文件时mod_proxy 502代理错误