2016-09-28 17 views
0

PHPを使って独自のクラウドサーバーにファイルをアップロードするためのwebappを開発しようとするといくつか問題があります。私はcurlを使ってWebDavPHPとHTMLフォームを使ってownCloudにファイルをアップロードする

:私はこの応答を取得するファイルをアップロードしようとすると

<?php 
    $request = curl_init('http://mydomain.cl/owncloud/remote.php/webdav/Dev/'); 

    curl_setopt($request,CURLOPT_POST,true); 
    curl_setopt($request,CURLOPT_HTTPHEADER,'Authorization: Basic'); 
    curl_setopt($request, CURLOPT_USERPWD, "user:password"); 
    curl_setopt($request, CURLOPT_PUT, 1); 
    curl_setopt(
     $request, 
     CURLOPT_INFILE, 
     array(
      'thefile'=> 
         '@'   .$_FILES['file']['tmp_name'] 
         . ';filename=' .$_FILES['file']['daName'] 
         . ';type='  .$_FILES['file']['type'] 

     )); 
    curl_setopt($request, CURLOPT_INFILE, $_FILES['file']); 
    curl_setopt($request, CURLOPT_INFILESIZE, filesize($_FILES['file'])); 


    // output the response 
    curl_setopt($request, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($request, CURLOPT_BINARYTRANSFER, TRUE); 
    echo curl_exec($request); 

    // close the session 
    curl_close($request); 

?> 

uploader.php

のindex.php

<html> 
     <head> 
      <title>Theform is here</title> 
     </head> 
     <body> 
      <div align="center"> 
       <h1> File uploads with OwnCloud API</h1> 
       <form method="post" action="uploader.php" name="fileuploader"> 
        <label>Select a File to upload</label><br> 
        <input type="file" name="file"></input><br> 
        <input type="submit" value="upload file"></input> 
       </form> 
       <?php 
       ?> 
      </div> 
     </body> 
    </html> 

:ので、ここでのコードです

Saber \ DAV \ Exception \ NotAuthenticatedいいえ 'Authorization:Basic'ヘッダー が見つかりました。クライアントは、1を送信していない、またはサーバが 設定ミス

あるしかし、私はowncloudクライアントを使用する場合、私は問題もなく私のファイルにアクセスすることができます。

EDITは:$要求に名前変数$ CHを修正し、行を追加:

ますcurl_setopt($要求、CURLOPT_HTTPHEADER、 '認証:基本を'); @Craigポストから

その後、私はこのエラーメッセージました、:

サーベル\ DAV \例外を\競合PUTは、非ファイルで許可されていません。

これを解決するのを手伝ってください。よろしく:私は、フォームを指すように持っていた最後owncloudを通じて自分のファイルを管理するために

curl_setopt($ch, CURLOPT_HTTPHEADER, 'Authorization: Basic'); 
+0

編集:私は、ファイルを投稿するCURL方法を見つけましたが、コマンドラインのように思えるのドキュメントにブラウズ[OwnCloudドキュメント](https://doc.owncloud.org/server/9.1/user_manual/files/ access_webdav.html#-access-files-using-curl)誰かがirを解析する方法やPHP上で使用する方法を知っていれば、私の目的にとって大きな助けになります。 – NMenam

答えて

0

CURLOPT_HTTPHEADER => array('Authorization: Basic'); 

たり、既存の規則を使用するには:D

0

があなたのカールオプションで、これを含めますWebサーバー上のディレクターとして、独自のクラウドプラグインを使用して外部のストレージソースをマウントし、かなりうまく動作します。

External Storage Configuration

+0

これは動作しますが、サーバーの応答:Saber \ DAV \ Exception \ Conflict PUTは非ファイルに対しては許可されません。 – NMenam

+0

Ok ... PUT以外のものを試しましたか? – Craig

+0

POSTを試してもうまくいきません – NMenam

関連する問題