4

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 がドキュメント ルートに存在することは間違いありません。

4

1 に答える 1

1

is_uploaded_file()ファイルが実際にアップロードされたことを確認しますが、ファイルがアップロードされていないため、コードでは機能しません。そのため、ファイルのチェックにisValid()使用しているため、 false も返されます。is_file_uploaded()UploadedFile には $test パラメータがあり、true に設定するとisValid()、ファイルが実際にアップロードされたかどうかを確認しません。これは、実際にファイルがアップロードされないテストに使用されます。このパラメーターを true に設定するとisValid()、ファイルに対して true が返されます。それはハックですが、おそらく必要なものです

于 2015-10-17T22:42:40.770 に答える