3

PHPのtmpfile()関数を使用して作成されたファイルハンドルの配列があるとすると、PHP curlを使用してファイルを添付ファイルとして送信できますか?

通常、$ postdata [fieldname] ='@path_to_file'の形式で連想配列を作成しますが、tmpfileのパスを特定できないため(ハンドルしかありません)、途方に暮れています。

動機:これらのtmpfileの内容をディスクから個別にパージする必要はありません。tmpfileの動作はこの目的に適していると思いますが、curlコンポーネントは物事を複雑にしています。

回答後の考慮事項:Jayの回答はこれをクリアしますが、tmpfileのディールブレーカーの欠点に遭遇しました。致命的またはプロセスの突然の終了の場合、「クリーンアップ」動作がスキップされるため、手動でのパージは次のようになります。フェイルセーフとして必要です。tmpfileであるかどうかにかかわらず、ファイルシステムを通過してすべてがクリーンアップされていることを確認するプロセスを回避する方法はないと思います。

4

1 に答える 1

1

チェックアウト: http: //us.php.net/manual/en/function.stream-get-meta-data.php

次のことができます。

$t = tmpfile();
$a = stream_get_meta_data($t);

$filename = $a['uri'];

この質問は次のようになります。ファイルハンドルを使用してファイル名を取得する(またはファイルを削除する)

于 2013-02-06T20:30:25.297 に答える