我试图从现有文件创建一个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.这是一个黑客,但也许是你需要的