2011-07-24 19 views
5

phpとcurlでファイルをアップロードしようとすると、 "formpostデータの作成に失敗しました"というエラーが発生します。ファイルパスが正しくないとエラーが発生することがわかります。ファイルをアップロードするときのカールエラー "フォームポストデータの作成に失敗しました"

test.php 
... 
$postcontent['files'] = '@test.jpg'; 
... 

test.phpとtest.jpgは同じフォルダにあります。しかし、パスを物理パスに変更すると、コードは正常に実行されます。

test.php 
... 
$postcontent['files'] = '@F:\xampp\htdocs\upload\test.jpg'; 
... 
+1

ます。https://bugs.phpを。 net/bug.php?id = 50060 - おそらくこれが理由です。 私もこの問題を抱えていました。私は次のテストを行いました。私は '@'を '' と置き換えてエラーが消えました。 –

答えて

6

2番目の例のように、常に絶対パスを使用するようにしてください。もちろん


あなたがいずれかを使用したいと思うでしょうので、あなたは、ハードコードその物理パスにしたくない:

  • dirname(__FILE__)もので、このファイルを含むディレクトリへのパスを取得するには
  • またはPHP> = 5.3の場合:__DIR__で、正確に同じパスが得られます。 PHP < 5.3で、

    $postcontent['files'] = '@' . __DIR__ . '/test.jpg'; 
    

    または::


だから、あなたのケースでは、おそらくのようなものを使用したい

$postcontent['files'] = '@' . dirname(__FILE__) . '/test.jpg'; 
関連する問題