Forum Discussion
Copy documents between libraries with js pnp
- Mar 19, 2017
Hi there,
It can be done with `copyTo` method. With pnp-core-js:$pnp.sp.web .getFileByServerRelativeUrl('/sites/dev01/DocLib01/tttt/Development and Deployment Guidelines.pdf') .copyTo('/sites/dev01/DocLib03/Development and Deployment Guidelines.pdf', true) .then(function(res) { console.log(res); });
Which constructs POST request to the following REST endpoint:
/_api/web /getfilebyserverrelativeurl('[server relative url of the file to copy') /copyto(
strnewurl='[server reletive url where to copy, including file name]',
boverwrite=true)--
Cheers,
Andrew
Hi there,
It can be done with `copyTo` method. With pnp-core-js:
$pnp.sp.web .getFileByServerRelativeUrl('/sites/dev01/DocLib01/tttt/Development and Deployment Guidelines.pdf') .copyTo('/sites/dev01/DocLib03/Development and Deployment Guidelines.pdf', true) .then(function(res) { console.log(res); });
Which constructs POST request to the following REST endpoint:
/_api/web /getfilebyserverrelativeurl('[server relative url of the file to copy') /copyto(
strnewurl='[server reletive url where to copy, including file name]',
boverwrite=true)
--
Cheers,
Andrew
- brainstorm160Feb 19, 2021Copper Contributor
Thank you for your answer
I used your method with sp pnp like below
sp.web.getFileByServerRelativeUrl(attachments.ServerRelativeUrl).copyTo('(siteName)/TestDocuments/',false).then(result => {console.log("Uploaded Document", result)})However, it is constructed Get request not Post. As a result I face the following error messageThe HTTP method 'GET' cannot be used to access the resource 'CopyTo'. The operation type of the resource is specified as 'Default'. Please use correct HTTP method to invoke the resourceHow can I fix this issue?Thank you so much ahead - Vandana ChadhaFeb 07, 2018Copper Contributor
Hello,
How can we maintain versioning in the target library while copying the files from Source to target, if the target library has versioning enable. Please suggest!
Thanks!!
- Nigel_Price9911Feb 08, 2018Iron Contributor
bump - any progress on this ?
- Jon Ivar KlevelandMar 21, 2017Copper Contributor
Thanks!
A second question...is it possible to use pnp-core-js to copy file(s) to a doc lib in another sitecollection, too?
- Mar 21, 2017
Hi Jon,
Nope, it doesn't seem to be possible with REST.
CopyTo method works within single SPWeb.
Though, it's possible to get a file's blob/buffer and metadata and create a new document in other SPSite/SPWeb using REST and pnp js core.
- Jon Ivar KlevelandMar 24, 2017Copper Contributor
Thanks.
Just would be nice to not transfer the document to the client and back. But we then have to make the solution in Azure...