Media - Upload
Upload a new WordPress Media using SQL Server
- See SQLHTTP easy setup for WordPress
- See API Call documentation for parameter values and other information
- Create the stored procedure documented below
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
ALTER PROCEDURE usp_WordPress_v2_Media_Upload( @Profile nvarchar(100), @FileName nvarchar(MAX), @FilePath varchar(MAX), @IsFileContentBase64 bit = 1, @Context varchar(10) = 'view', @slug varchar(50) = NULL, @status varchar(10) = NULL, @title varchar(50) = NULL, @date varchar(50) = NULL, @date_gmt varchar(50) = NULL, @author int = NULL, @comment_status varchar(10) = NULL, @ping_status varchar(10) = NULL, @meta varchar(MAX) = NULL, @alt_text varchar(100) = NULL, @caption varchar(100) = NULL, @description varchar(100) = NULL, @post int = NULL, @Response nvarchar(MAX) OUTPUT, @StatusCode int OUTPUT, @StatusDescription nvarchar(MAX) OUTPUT) AS DECLARE @URL nvarchar(MAX) DECLARE @QueryString nvarchar(MAX) DECLARE @HTTPSessionID uniqueidentifier DECLARE @ContentDisposition nvarchar(MAX) DECLARE @ContentType nvarchar(4000) SET @URL = SQLHTTP.net.AuthParam(@Profile, 'RootURL') EXEC SQLHTTP.net.UrlBuilder @URL OUTPUT, @Profile, 'wp-json', 'wp', 'v2', 'media' EXEC SQLHTTP.net.QueryStringBuilder @QueryString OUTPUT, @Profile, 'context', @Context, 'slug', @slug, 'status', @status, 'title', @title, 'date', @date, 'date_gmt', @date_gmt, 'author', @author, 'comment_status', @comment_status, 'ping_status', @ping_status, 'meta', @meta, 'alt_text', @alt_text, 'caption', @caption, 'description', @description, 'post', @post SET @URL = @URL + @QueryString EXEC SQLHTTP.net.HTTPSession @HTTPSessionID OUTPUT EXEC usp_WordPress_v2_Auth_Header @HTTPSessionID, @Profile, @URL, 'POST' SET @ContentDisposition = 'attachment;filename=' + @FileName EXEC SQLHTTP.net.RequestHeaderSet @HTTPSessionID, 'Content-Disposition', @ContentDisposition IF @IsFileContentBase64 = 0 SET @ContentType = 'text/plain' ELSE SET @ContentType = 'application/octet-stream' EXEC SQLHTTP.net.HTTPRequest @HttpSessionID, @URL = @URL, @Method = 'POST', @Body = @FilePath, @IsBodyPathToFile = 1, @ContentType = @ContentType, @AllowAutoRedirect = 1, @StatusCode = @StatusCode OUTPUT, @StatusDescription = @StatusDescription OUTPUT, @Response = @Response OUTPUT GO |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
DECLARE @Response nvarchar(MAX) DECLARE @StatusCode int DECLARE @StatusDescription nvarchar(MAX) DECLARE @FilePath varchar(MAX) SET @FilePath = 'E\Flowers.jpg' EXEC usp_WordPress_v2_Media_Upload @Profile = 'My Website', @FileName = 'Flowers.jpg', @FilePath = @FilePath, @IsFileContentBase64 = 1, @Caption = 'Red Roses', @Response = @Response OUTPUT, @StatusCode = @StatusCode OUTPUT, @StatusDescription = @StatusDescription OUTPUT IF @StatusCode >= 400 EXEC SQLHTTP.net.RaiseHttpError @StatusCode, @StatusDescription, @Response ELSE BEGIN DECLARE @X xml SET @X = SQLHTTP.net.Json_To_Xml(@Response, '0') --The XPath syntax below was easily generated by executing the following commands: --EXEC SQLHTTP.net.XQueryHelper @X --and then executing: --EXEC SQLHTTP.net.XQueryHelper @X, 'JsonObject' SELECT T.C.value(N'@author', N'nvarchar(MAX)') AS [author] ,T.C.value(N'@id', N'nvarchar(MAX)') AS [id] ,T.C.value(N'@type', N'nvarchar(MAX)') AS [type] ,T.C.value(N'@media_type', N'nvarchar(MAX)') AS [media_type] ,T.C.value(N'@mime_type', N'nvarchar(MAX)') AS [mime_type] FROM @X.nodes(N'/JsonObject') T(C) END |
1 2 3 4 5 |
author id type media_type mime_type -------- ------ ------------ ------------ ------------ 3 157 attachment image image/jpeg |
- Categories – Fetch
- Category – Create
- Category – Delete
- Category – Fetch
- Category – Update
- Comment – Create
- Comment – Delete
- Comment – Fetch
- Comment – Update
- Comments – Fetch
- Media – Delete
- Media – Download
- Media – Fetch
- Media – Update
- Media – Upload
- Media Item – Fetch
- Page – Create
- Page – Delete
- Page – Fetch
- Page – Update
- Pages – Fetch
- Post – Create
- Post – Delete
- Post – Fetch
- Post – Update
- Post Type – Fetch
- Posts – Fetch
- Settings – Update
- Status – Fetch
- Statuses – Fetch
- Tag – Create
- Tag – Delete
- Tag – Fetch
- Tag – Update
- Tags – Fetch
- Taxonomies – Fetch
- Taxonomy – Fetch
- Types – Fetch
- User – Create
- User – Delete
- User – Fetch
- User – Update
- Users – Fetch
IMPORTANT DISCLAIMER
CODE/SQL ON THESE PAGES ARE PROVIDED AS-IS AND ARE AVAILABLE FOR ILLUSTRATIVE PURPOSES ONLY.
USERS ARE REQUIRED TO ABIDE BY THE TERMS AND CONDITIONS FOR USING REFERENCED THIRD PARTY WEBSITES AND/OR APIs FROM THEIR RESPECTIVE WEBSITES. WE DO NOT CONDONE ANY VIOLATION OF THIRD PARTY WEBSITES AND/OR APIs TERMS AND CONDITIONS USING OUR SOFTWARE.
USERS SHALL BE SOLELY RESPONSIBLE AND BE SOLELY LIABLE FOR VIOLATION OF ANY RULES SPECIFIED BY THIRD PARTIES FOR USING THEIR WEBSITES AND/OR APIs, OR INFRINGEMENT OF RIGHTS OF SUCH THIRD PARTIES.