2012-03-22 17 views
0

私は現時点で構築しているWebサイトでPHPviddler2 APIを使用していますが、何かがユーザーを混乱させています。アップロード時に自動的にPHPファイルを返すViddler

アップロードフォームによるアップロードの終了時(コードは下記)、私のユーザーは自動的にアップロードファイルを受け取ります。

<?php 
    include('phpviddler/phpviddler.php'); 

    $user = '[censored]'; 
    $pass = '[censored]'; 
    $api_key = '[censored]'; 
    $callback_url = '/'; 

    $v = new Viddler_V2($api_key); 

    $auth = $v->viddler_users_auth(array('user' => $user, 'password' => $pass)); 

    $sessionid = $auth['auth']['sessionid']; 

    $prepare_resp = $v->viddler_videos_prepareUpload(array('sessionid' => $sessionid)); 

    $upload_server = $prepare_resp['upload']['endpoint']; 
    $upload_token = $prepare_resp['upload']['token']; 
?> 
<div id="viddler-form"> 
    <form method="post" action="<?= $upload_server ?>" enctype="multipart/form-data"> 
     <input type="hidden" name="uploadtoken" value="<?= $upload_token ?>" /> 
     <input type="hidden" name="callback" value="<?= $callback_url ?>" /> 
     <table> 
      <tr><td><label>Title:</label></td><td><input type="text" name="title" /></td><td>Band name or project name (Example: John Smith Band or John Smith Audition)</td></tr> 
      <tr><td><label>Description:</label></td><td><input type="text" name="description" /></td><td>Type of band or project (Example: 5-piece cover band or Orchestra Audition Saxophone)</td></tr> 
      <tr><td><label>Tags:</label></td><td><input type="text" name="tags" /></td><td>Keywords associated with your video (Example: johnsmith, orchestrasax)</td></tr> 
      <tr><td><label>File:</label></td><td><input type="file" name="file" /></td><td>Choose your video (.mov .wmv .avi .mp4 .m4v .divx .mpg .mpeg)</td></tr> 
      <tr><td><input type="submit" value="Upload" id="submit-button" /></td><td></td></tr> 
     </table> 
    </form> 

</div> 

PHPファイルが自分のユーザーに返されないようにする方法はありますか?

編集:このフォームの動作は、このアドレス:http://uploads1.viddler.com/viddler_upload/upload/uploadvideo.phpです。だから私はおそらくそれを変更することはできません。

はまた、ファイルが返され、これを含んでいます

a:1:{s:5:"video";a:5:{s:2:"id";s:8:"1fade21b";s:5:"title";s:4:"test";s:11:"description";s:5:"test ";s:3:"url";s:33:"http://www.viddler.com/v/1fade21b";s:13:"thumbnail_url";s:54:"http://cdn-thumbs.viddler.com/thumbnail_2_1fade21b.jpg";}} 
+1

フォームアクションが指しているファイルを確認する必要があります。それはどこに問題があるのですか? – AndrewR

+0

その文字列は直列化されたphp配列です。自分のフォームハンドラからファイルを送信するためにCurlのようなものを使用するはずですか? – AndrewR

+0

アップロードが完了すると、このファイルがユーザーによってダウンロードされています。どのように私はそれを読むためにそれを傍受することができますか?おそらく、それが私のユーザーによってダウンロードされていないことの鍵になる可能性があります。 – Fredy31

答えて

1

私はViddler 2 PHPのAPIをダウンロードし、そして彼らは、アップロードファイルの例が含まれます。私は以下のコードをテストすることができませんでしたが、私はあなたがこのようなことをする必要があると思います。

<?php 
if(isset($_FILES) && file_exists($_FILES['file']['tmp_name'])){ 
    include('phpviddler/phpviddler.php'); 

    $user = '[censored]'; 
    $pass = '[censored]'; 
    $api_key = '[censored]'; 
    $callback_url = '/'; 

    $v = new Viddler_V2($api_key); 

    $auth = $v->viddler_users_auth(array('user' => $user, 'password' => $pass)); 

    $params = array(
     'sessionid'=>$user['auth']['sessionid'], 
     'title'=>$_POST['title'], 
     'tags'=>$_POST['tags'], 
     'description'=>$_POST['description'], 
     'file'=>'@' . $_FILES['file']['tmp_name'] 
    ); 

    $sessionid = $auth['auth']['sessionid']; 

    $prepare_resp = $v->viddler_videos_prepareUpload(array('sessionid' => $sessionid)); 
    $results = $v->viddler_videos_upload($params, $prepare_resp['upload']['endpoint']); 

    header("Location: complete.php"); // redirect to a thank you page? 
    exit; 
} 
?> 
<div id="viddler-form"> 
    <form method="post" action="" enctype="multipart/form-data"> 
     <table> 
      <tr><td><label>Title:</label></td><td><input type="text" name="title" /></td><td>Band name or project name (Example: John Smith Band or John Smith Audition)</td></tr> 
      <tr><td><label>Description:</label></td><td><input type="text" name="description" /></td><td>Type of band or project (Example: 5-piece cover band or Orchestra Audition Saxophone)</td></tr> 
      <tr><td><label>Tags:</label></td><td><input type="text" name="tags" /></td><td>Keywords associated with your video (Example: johnsmith, orchestrasax)</td></tr> 
      <tr><td><label>File:</label></td><td><input type="file" name="file" /></td><td>Choose your video (.mov .wmv .avi .mp4 .m4v .divx .mpg .mpeg)</td></tr> 
      <tr><td><input type="submit" value="Upload" id="submit-button" /></td><td></td></tr> 
     </table> 
    </form> 

</div> 
+0

それは問題の解決策でした:viddlerにアップロードする前にサーバーにアップロードしてください。ファイルはユーザーではなくサーバーに返されます。 – Fredy31

関連する問題