3

過去2日間のフォームで、phpを使用してBox.netにファイルをアップロードする問題を修正しようとしています。

Box.net APIドキュメントを確認し、提供されたサンプルコード、提供されたコードをコピーしました。ファイルを完全にアップロードしますが、サーバー応答が出力されるページ(XML応答)にリダイレクトされます。

そのような画面をユーザーに見せたくないのですが、代わりにそれらのデータを読み、その応答に基づいて私のメッセージを表示したいと思います。

@GBDのガイダンスに従ってコードを編集しましたが、別の問題に直面しています。

私が選択したファイルはアップロードされませんが、代わりにいくつかアップロードされます.tmp file。そして、ファイルパスをハードコーディングすると、$_POST['new_file1']正しいファイルが正常にアップロードされます。私が取得するC:\wamp\tmp\php1A.tmpファイルパスは、エコーしたときに実際のファイルパスではなく、このようなもの$_FILES['new_file1']['tmp_name']です。

誰かがファイルパスを取得する方法を教えてもらえます$_FILESか?$postに渡すことができるように

以下は私のコードです:

<?php
$upload_url = 'https://upload.box.net/api/1.0/upload/i9g1fmnnddfdr4739sxvbpXXXXXXXX/480416060';
$tmpfile = $_FILES['new_file1']['tmp_name'];
$filename = basename($_FILES['new_file1']['name']);
$_POST['new_file1'] = '@'.$tmpfile;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $upload_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); 
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
<form action=""
  enctype="multipart/form-data" accept-charset="utf-8" method="POST">
<input type="file" name="new_file1" />
<input type="text" name="share" value="1" />
<input type="submit" name="upload_files" value="Upload File" />
</form>

私を助けてください。

前もって感謝します。

4

1 に答える 1

1

試す

<?php

$tmpfile = $_FILES['new_file1']['tmp_name'];
$filename = basename($_FILES['new_file1']['name']);

$_POST['new_file1'] = '@'.$tmpfile;

$upload_url = 'https://upload.box.net/api/1.0/upload/i9g1fmnnddfdr4739sxvbpXXXXXXXX/480416060';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $upload_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); 
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
于 2012-12-04T17:49:31.407 に答える