Я пытаюсь создать 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()
вернул бы истину для вашего файла. Это взлом, но, возможно, это то, что вам нужно
Других решений пока нет …