/// <summary> /// Uploads a document into Scribd /// </summary> /// <param name="path">Local or Url path to the file</param> /// <param name="accessType">Access permission of document</param> /// <param name="revisionNumber">The document id to save uploaded file as a revision to</param> /// <param name="documentType">Type of document</param> /// <param name="paidContent">Is this paid content or not</param> /// <param name="downloadType">Download options to support</param> /// <param name="asynch">Synch of Asych upload?</param> /// <returns><see cref="T:Scribd.Net.Document"/> instance of the uploaded document.</returns> private static Document _Upload(string path, AccessTypes accessType, int revisionNumber, string documentType, bool paidContent, DownloadAndDRMTypes downloadType, bool asynch) { Document _result = new Document(); // Build our request using (Request _request = new Request()) { // Is this from a URL? if (path.StartsWith(@"http://") || path.StartsWith(@"https://")) { // Upload to Scribd via URL _request.MethodName = "docs.uploadFromUrl"; _request.Parameters.Add("url", path); } else { // Don't. _request.MethodName = "docs.upload"; _request.Parameters.Add("file", path); } if (!string.IsNullOrEmpty(documentType)) { _request.Parameters.Add("doc_type", documentType.ToLower()); } _request.Parameters.Add("access", accessType == AccessTypes.Public ? "public" : "private"); if (revisionNumber != 0) { _request.Parameters.Add("rev_id", revisionNumber.ToString()); } if (paidContent) { _request.Parameters.Add("paid_content", "1"); if (downloadType != DownloadAndDRMTypes.Default) { switch (downloadType) { case DownloadAndDRMTypes.DownloadDRM: _request.Parameters.Add("download_and_drm", "download-drm"); break; case DownloadAndDRMTypes.DownloadPDF: _request.Parameters.Add("download_and_drm", "download-pdf"); break; case DownloadAndDRMTypes.DownloadPDFandOriginal: _request.Parameters.Add("download_and_drm", "download-pdf-orig"); break; case DownloadAndDRMTypes.ViewOnly: _request.Parameters.Add("download_and_drm", "view-only"); break; } } } if (asynch) { // Post it asychronously Service.Instance.PostFileUploadRequest(_request); } else { // Post is sychronously // Get our response Response _response = Service.Instance.PostRequest(_request); // Parse the response if (_response != null && _response.HasChildNodes && _response.ErrorList.Count < 1) { XmlNode _node = _response.SelectSingleNode("rsp"); // Data _result.DocumentId = int.Parse(_node.SelectSingleNode("doc_id").InnerText); _result.AccessKey = _node.SelectSingleNode("access_key").InnerText; // Security if (_node.SelectSingleNode("secret_password") != null) { _result.AccessType = AccessTypes.Private; _result.SecretPassword = _node.SelectSingleNode("secret_password").InnerText; } } // Notify subscribers OnUploaded(_result); } } return _result; }
/// <summary> /// Uploads a document into Scribd /// </summary> /// <param name="path">Local or Url path to the file</param> /// <param name="accessType">Access permission of document</param> /// <param name="revisionNumber">The document id to save uploaded file as a revision to</param> /// <param name="documentType">Type of document</param> /// <param name="downloadType">Download options to support</param> /// <param name="asynch">Synch of Asych upload?</param> /// <returns><see cref="T:Scribd.Net.Document"/> instance of the uploaded document.</returns> public static Document UploadPaidContent(string path, AccessTypes accessType, int revisionNumber, string documentType, DownloadAndDRMTypes downloadType, bool asynch) { return _Upload(path, accessType, revisionNumber, documentType, true, downloadType, asynch); }