2015-10-17 66 views
3

我想从现有的文件中创建一个UploadedFile,但它没有成功上传,也没有显示任何错误。Symfony 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 

我相信临时文件存在于文档根!

+0

你也可以粘贴你的HTML文件的内容? –

+0

@NishchalGautam没有html文件。请参阅最新的代码。 – user3425344

+0

如果没有html,你如何上传文件?你如何首先向服务器提交文件?如果你想写入文件,你可以使用'''file_put_contents('filename','data');''' –

回答

1

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