Bestanden uploaden naar sharepoint dmv php?
Ik heb eindelijk alles af.
Nu vroeg ik mij eigenlijk het volgende af, wat ik ook niet zo kan vinden in dit forum.
Is er iemand die het gelukt is om via php een bestand te uploaden richting sharepoint op een vrij simpele manier?
Je komt via google erg ingewikkelde methodes tegen en die geven je nog geen duidelijk beeld.
Vroeg mij af of dit iemand al eens geprobeerd heeft of het gelukt is.
https://github.com/vgrem/phpSPO
En dan deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$authCtx = new AuthenticationContext($webUrl);
$authCtx->acquireTokenForUser($userName,$password);
$ctx = new ClientContext($webUrl,$authCtx);
$localFilePath = "./data/user guide.docx";
$targetFileUrl = "Documents/user guide.docx";
$fileContent = file_get_contents($localFilePath);
File::saveBinary($ctx,$targetFileUrl,$fileContent);
print "File has been uploaded\r\n";
?>
$authCtx = new AuthenticationContext($webUrl);
$authCtx->acquireTokenForUser($userName,$password);
$ctx = new ClientContext($webUrl,$authCtx);
$localFilePath = "./data/user guide.docx";
$targetFileUrl = "Documents/user guide.docx";
$fileContent = file_get_contents($localFilePath);
File::saveBinary($ctx,$targetFileUrl,$fileContent);
print "File has been uploaded\r\n";
?>
Bron: https://sharepoint.stackexchange.com/questions/139342/uploading-a-file-to-sharepoint-using-your-phpspo-library
Gewijzigd op 22/06/2020 17:25:24 door - Ariën -
Hier moet je ook het een of ander installeren wat ik zo lees of zie ik dat verkeerd?
Nee, er staat dat je de keuze uit Composer hebt of een handmatige installatie vanuit de download.
Ik heb van alles geprobeerd maar niks werkt en heb wel alles goed gedaan overal.
Nergens zijn duidelijke voorbeelden te vinden die werken want bij de meeste krijg ik gewoon een 500 error als ik via ontwikkelings-hulp in de explorer kijk , maar nergens wat er dan precies aan de hand is.
Mogelijk staan foutmeldingen uit, en dus zal die ook niet in de ontwikkel-tools van je browser zien.
En maar goed ook, ik als bezoeker hoef bij een probleem niet te weten dat er bij een site een 'niet gevonden database' of een 'syntax error op lijn x van y.php' aanwezig is.
Ik snap je volkomen, echter het helpt mij niet met het probleem ;)
Je wilt toch weten WAT er mis is, en niet DAT er iets mis is.
Gewijzigd op 10/07/2020 19:06:46 door - Ariën -
Hoe moet ik die dan vinden, console geeft niks aan.
Code (php)
1
2
3
2
3
# Error log aanzetten
php_flag log_errors on
php_value error_log /home/pad/domain/logs/PHP_errors.log
php_flag log_errors on
php_value error_log /home/pad/domain/logs/PHP_errors.log
Gelukkig zie je de foutmeldingen niet in je console, want dat wil niemand zomaar ;-)
Gewijzigd op 10/07/2020 19:13:13 door - Ariën -
Welke naam heeft die logfile ? zit even te kijken, vind er enkele log-map, tenminste als dat de juiste map is.
Zoals error.log of iets in die trant. Het verschilt per serverconfiguratie.
Kom hierop terug :)
Ik ben benieuwd naar het probleem.
De fout die hij aangeeft is als volgt.:
Code (php)
1
[Fri Jul 10 19:51:12.347720 2020] [:error] [pid 4904] [client 192.168.10.1:35669] PHP Fatal error: Uncaught Error: Call to a member function getContent() on null in /var/www/html/sharepoint/vendor/vgrem/php-spo/src/Runtime/Auth/SamlTokenProvider.php:161\nStack trace:\n#0 /var/www/html/sharepoint/vendor/vgrem/php-spo/src/Runtime/Auth/SamlTokenProvider.php(107): Office365\\Runtime\\Auth\\SamlTokenProvider->acquireSecurityToken('', NULL)\n#1 /var/www/html/sharepoint/vendor/vgrem/php-spo/src/Runtime/Auth/AuthenticationContext.php(72): Office365\\Runtime\\Auth\\SamlTokenProvider->acquireToken(Array)\n#2 /var/www/html/sharepoint/vendor/vgrem/php-spo/src/SharePoint/ClientContext.php(76): Office365\\Runtime\\Auth\\AuthenticationContext->acquireTokenForUser('', NULL)\n#3 /var/www/html/sharepoint/ConnectOnline.php(12): Office365\\SharePoint\\ClientContext::connectWithUserCredentials('https://mediade...', '', NULL)\n#4 {main}\n thrown in /var/www/html/sharepoint/vendor/vgrem/php-spo/src/Runtime/Auth/SamlTokenProvider.php on line 161, referer: http://192.168.10.54/sharepoint/
Heb je de relevante code die erbij hoort in max. 20 regels?
Je bedoeld neem ik aan de code die deze error geeft?
Ja
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
require_once __DIR__ . '/vendor/autoload.php';
$settings = include( __DIR__ . '/Settings.php');
use Office365\SharePoint\ClientContext;
try {
$ctx = ClientContext::connectWithUserCredentials($settings['Url'], $settings['UserName'], $settings['Password']);
//$ctx = ClientContext::connectWithClientCredentials($Settings['Url'], $Settings['ClientId'], $Settings['ClientSecret']);
$site = $ctx->getSite();
$ctx->load($site); //load site settings
$ctx->executeQuery();
print $site->getUrl();
}
catch (Exception $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
} ?>
require_once __DIR__ . '/vendor/autoload.php';
$settings = include( __DIR__ . '/Settings.php');
use Office365\SharePoint\ClientContext;
try {
$ctx = ClientContext::connectWithUserCredentials($settings['Url'], $settings['UserName'], $settings['Password']);
//$ctx = ClientContext::connectWithClientCredentials($Settings['Url'], $Settings['ClientId'], $Settings['ClientSecret']);
$site = $ctx->getSite();
$ctx->load($site); //load site settings
$ctx->executeQuery();
print $site->getUrl();
}
catch (Exception $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
} ?>
Gooi $ctx eens in een var_dump() en wat zie je dan?
Krijg gewoon 500 fout te zien of moet ik weer in die error log kijken?