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