php curl upload server owncloud

Cargar un archivo en mi servidor Owncloud con PHP



curl upload (1)

Estaba teniendo un problema con una carga en owncloud también. Tenía los mismos síntomas, el curl de la línea de comandos funciona, pero no la llamada curl de PHP.

Gracias a su publicación pude hacerlo funcionar. Esto es lo que funciona para mí

// upload backup $file_path_str = ''/tmp/'' . date(''Ymd'') . ''.tar.gz''; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ''http://server/remote.php/webdav/backups/'' . basename($file_path_str)); curl_setopt($ch, CURLOPT_USERPWD, "user:pass"); curl_setopt($ch, CURLOPT_PUT, 1); $fh_res = fopen($file_path_str, ''r''); curl_setopt($ch, CURLOPT_INFILE, $fh_res); curl_setopt($ch, CURLOPT_INFILESIZE, filesize($file_path_str)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); // --data-binary $curl_response_res = curl_exec ($ch); fclose($fh_res);

Las diferencias son:

  • CURLOPT_PUT en lugar de CURLOPT_CUSTOMREQUEST
  • CURLOPT_INFILE y CURLOPT_INFILESIZE en lugar de CURLOPT_POSTFIELDS

Gracias por tu ayuda. //

Recientemente, creé mi servidor owncloud y necesito poder cargar un archivo desde un formulario php que transfiera un archivo de mi pc a mi servidor owncloud. Así que traté de usar Curl, así:

<?php $url = "5.25.9.14/remote.php/webdav/plus.png"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // -X PUT curl_setopt($ch, CURLOPT_USERPWD, "root:root"); // --user curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); // --data-binary curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS, array( ''img/plus.png'' => ''@''.realpath(''img/plus.png'') ) ); $output = curl_exec($ch); curl_close($ch); ?>

He sido inspirado por esta publicación y este comando:

curl -X PUT "http://server.com/owncloud/remote.php/webdav/file.zip" --data-binary @"/Users/Root/Downloads/file.zip"

La línea de comando, él está trabajando pero no mi php. Logré subir el archivo pero el archivo está dañado y no sé por qué: /. Tal vez extraño el tipo MIME? ¿Es suficiente obtener un archivo dañado?

¿Ves dónde estoy equivocado? Un cordial saludo, Zed13

Editar: Cuando hago un archivo de mi archivo cargado, es de tipo datos y no png, extraño ...