Download files from a SharePoint library based on conditions

Hello,
I'm currently using a PowerShell script to download all the files from a SharePoint document library. The script works like a charm! I am now adding a new column to this document library which has the Yes/No choice and Yes is the default. I want the script
to only download the items whose choice is Yes and then change the choice to No. Any advice?
Below is the script I am currently using.
######################## Start Variables ########################
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 
$destination = "C:\Temp\scripts\msg"
$webUrl = "http://sp13test.sharepoint.com/"
$listUrl = "http://sp13test.sharepoint.com/Docs/"
$web = Get-SPWeb -Identity $webUrl
$list = $web.GetList($listUrl)
function ProcessFolder {
    param($folderUrl)
    $folder = $web.GetFolder($folderUrl)
foreach ($file in $folder.Files) {
        #Ensure destination directory
#        $destinationfolder = $destination + "/" + $folder.Url 
        $destinationfolder = $destination
        if (!(Test-Path -path $destinationfolder))
            $dest = New-Item $destinationfolder -type directory
        #Download file
        $binary = $file.OpenBinary()
        $stream = New-Object System.IO.FileStream($destinationfolder + "/" + $file.Name), Create
        $writer = New-Object System.IO.BinaryWriter($stream)
        $writer.write($binary)
        $writer.Close()
#Download root files
ProcessFolder($list.RootFolder.Url)
#Download files in folders
foreach ($folder in $list.Folders) {
    ProcessFolder($folder.Url)

Hi NSUT,
Thank you for the script and it almost works 100%. I currently have 7 documents of which only 6 download. The 'Downloaded' column of all 6 changes to 'Yes'. For some reason one column will not update and its document will not download. I am also get he below
error.
Here's my script
######################## Start Variables ########################
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$destination = "D:\Temp\Scripts\msg"
$webUrl = "http://sp13test.sharepoint.com/"$listUrl =
http://sp13test.sharepoint.com/Docs/
$web = Get-SPWeb -Identity $webUrl
$list = $web.GetList($listUrl)
#Write-host $list
function ProcessFolder {
    param($folderUrl)
    $folder = $web.GetFolder($folderUrl)
  foreach ($file in $folder.Files) {
 $item = $file.Item
        #Ensure destination directory
        $destinationfolder = $destination
        if (!(Test-Path -path $destinationfolder))
            $dest = New-Item $destinationfolder -type directory
 if ($item["Downloaded"] -eq "No") {
        #Download file
        $binary = $file.OpenBinary()
        $stream = New-Object System.IO.FileStream($destinationfolder + "/" + $file.Name), Create
        $writer = New-Object System.IO.BinaryWriter($stream)
        $writer.write($binary)
        $writer.Close()
 $item["Downloaded"] = "Yes"
 $item.Update();
#Download root files
ProcessFolder($list.RootFolder.Url)
#Download files in folders
foreach ($folder in $list.Folders) {
    ProcessFolder($folder.Url)

Similar Messages

  • CSOM code in C # to download and upload multiple files from/to sharepoint library

    Hi All,
    Please help me I want to first download all my files from sharepoint library to my local folder using CSOM code .
    Once downloading is completed I want to upload those files in another library .
    I have done same thing using web services but need to do by CSOM now.
    Thanks please provide code of peice
    sudhanshu sharma Do good and cast it into river :)

    By using below code I am downloading multiple documents and uploading same doc to sharepoint while uploading i want to updat emetadata of source library to destination library ..
    I am able to do so but want to do now for dateandTime+metadata column as well please can you check my approach and let me know tht how to do for such kind of columns-
    FileProperty.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace ST_9569f2fe51bd4137bb31c38b3d46455d
    class FileProperty
    public string Title; //single line of text
    public string Description; //Multiple line of text
    public string DocumentType; //choice type
    public string DocumentCategory; //Choice type
    public string DocumentNumber; //Single line of text
    // public string DocumentStatus; //Choice
    public string DocumentTitle; //single line of text
    // public string CrossReference; //Multipleline type
    //public DateTime PublishDate; //DateAndTime Type column
    /// <summary>
    /// Get the SP Document Column internal name and thier respective values
    /// in key -value pair.
    /// </summary>
    /// <returns>The List of KeyValuePair</returns>
    public List<KeyValuePair<string, string>> getColumnKeyValueListProducts()
    {//Target Columns
    List<KeyValuePair<string, string>> columnKeyValuePairList = new List<KeyValuePair<string, string>>();
    columnKeyValuePairList.Add(new KeyValuePair<string, string>("Title", Title));
    columnKeyValuePairList.Add(new KeyValuePair<string, string>("Description0", Description));
    columnKeyValuePairList.Add(new KeyValuePair<string, string>("Document_x0020_Type", DocumentType));
    columnKeyValuePairList.Add(new KeyValuePair<string, string>("Document_x0020_Category", DocumentCategory));
    columnKeyValuePairList.Add(new KeyValuePair<string, string>("Document_x0020_Number", DocumentNumber));
    //columnKeyValuePairList.Add(new KeyValuePair<string, string>("Document_x0020_Status", DocumentStatus));
    columnKeyValuePairList.Add(new KeyValuePair<string, string>("Document_x0020_Title", DocumentTitle));
    //columnKeyValuePairList.Add(new KeyValuePair<string, string>("Cross%5Fx0020%5FReference", CrossReference));
    // columnKeyValuePairList.Add(new KeyValuePair<string, string>("Publish_x0020_Date", PublishDate));
    return columnKeyValuePairList;
    /* public List<KeyValuePair<string, DateTime>> getColumnKeyValueListProductsforDatenTime()
    //Target Columns
    List<KeyValuePair<string, DateTime>> columnKeyValuePairListdt = new List<KeyValuePair<string, DateTime>>();
    columnKeyValuePairListdt.Add(new KeyValuePair<string, DateTime>("Publish_x0020_Date", PublishDate));
    return columnKeyValuePairListdt;
    #region Help: Introduction to the script task
    /* The Script Task allows you to perform virtually any operation that can be accomplished in
    * a .Net application within the context of an Integration Services control flow.
    * Expand the other regions which have "Help" prefixes for examples of specific ways to use
    * Integration Services features within this script task. */
    #endregion
    #region Namespaces
    using System;
    using System.Data;
    using Microsoft.SqlServer.Dts.Runtime;
    using System.Windows.Forms;
    using Microsoft.SharePoint.Client;
    using System.IO;
    using System.Net;
    using System.Collections.Generic;
    //using System.IO;
    #endregion
    namespace ST_9569f2fe51bd4137bb31c38b3d46455d
    /// <summary>
    /// ScriptMain is the entry point class of the script. Do not change the name, attributes,
    /// or parent of this class.
    /// </summary>
    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    #region Help: Using Integration Services variables and parameters in a script
    /* To use a variable in this script, first ensure that the variable has been added to
    * either the list contained in the ReadOnlyVariables property or the list contained in
    * the ReadWriteVariables property of this script task, according to whether or not your
    * code needs to write to the variable. To add the variable, save this script, close this instance of
    * Visual Studio, and update the ReadOnlyVariables and
    * ReadWriteVariables properties in the Script Transformation Editor window.
    * To use a parameter in this script, follow the same steps. Parameters are always read-only.
    * Example of reading from a variable:
    * DateTime startTime = (DateTime) Dts.Variables["System::StartTime"].Value;
    * Example of writing to a variable:
    * Dts.Variables["User::myStringVariable"].Value = "new value";
    * Example of reading from a package parameter:
    * int batchId = (int) Dts.Variables["$Package::batchId"].Value;
    * Example of reading from a project parameter:
    * int batchId = (int) Dts.Variables["$Project::batchId"].Value;
    * Example of reading from a sensitive project parameter:
    * int batchId = (int) Dts.Variables["$Project::batchId"].GetSensitiveValue();
    #endregion
    #region Help: Firing Integration Services events from a script
    /* This script task can fire events for logging purposes.
    * Example of firing an error event:
    * Dts.Events.FireError(18, "Process Values", "Bad value", "", 0);
    * Example of firing an information event:
    * Dts.Events.FireInformation(3, "Process Values", "Processing has started", "", 0, ref fireAgain)
    * Example of firing a warning event:
    * Dts.Events.FireWarning(14, "Process Values", "No values received for input", "", 0);
    #endregion
    #region Help: Using Integration Services connection managers in a script
    /* Some types of connection managers can be used in this script task. See the topic
    * "Working with Connection Managers Programatically" for details.
    * Example of using an ADO.Net connection manager:
    * object rawConnection = Dts.Connections["Sales DB"].AcquireConnection(Dts.Transaction);
    * SqlConnection myADONETConnection = (SqlConnection)rawConnection;
    * //Use the connection in some code here, then release the connection
    * Dts.Connections["Sales DB"].ReleaseConnection(rawConnection);
    * Example of using a File connection manager
    * object rawConnection = Dts.Connections["Prices.zip"].AcquireConnection(Dts.Transaction);
    * string filePath = (string)rawConnection;
    * //Use the connection in some code here, then release the connection
    * Dts.Connections["Prices.zip"].ReleaseConnection(rawConnection);
    #endregion
    /// <summary>
    /// This method is called when this script task executes in the control flow.
    /// Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
    /// To open Help, press F1.
    /// </summary>
    public void Main()
    // TODO: Add your code here
    //Unpublished lib used to download files from sharepoint to local and Published library for uploading files from local to sharepoint
    //var srcFolderUrl = "http://ui3dats011x:2015/sites/techunits/UnPublished%20Doc/Forms/AllItems.aspx";
    //var destFolderUrl = "http://ui3dats011x:2015/sites/techunits/Published%20Documents/Forms/AllItems.aspx";
    using (var ctx = new ClientContext("http://ui3dats011x:2015/sites/techunits/"))
    try
    List LibraryName = ctx.Web.Lists.GetByTitle("Unpublished Doc");
    List LibraryName1 = ctx.Web.Lists.GetByTitle("Published Documents");
    ctx.Load(LibraryName1.RootFolder);
    ctx.Load(LibraryName);
    ctx.ExecuteQuery();
    CamlQuery camlQuery = new CamlQuery();
    //Used this caml query for filtering
    camlQuery.ViewXml = @"<View><Query><Where><Eq><FieldRef Name='Document_x0020_Type'/><Value Type='Choice'>Technical Unit</Value></Eq></Where></Query></View>";
    Microsoft.SharePoint.Client.ListItemCollection listItems = LibraryName.GetItems(camlQuery);
    ctx.Load<Microsoft.SharePoint.Client.ListItemCollection>(listItems);
    ctx.ExecuteQuery();
    string filename;
    FileInformation fileInfo;
    System.IO.FileStream outputStream;
    Dictionary<string, string> itemmetadata = new Dictionary<string, string>();
    foreach (var item in listItems)
    if (itemmetadata.Count > 0)
    itemmetadata.Clear();
    ctx.Load(item);
    ctx.ExecuteQuery();
    ctx.Load(item.File);
    ctx.ExecuteQuery();
    filename = item.File.Name;
    foreach (KeyValuePair<string, object> metaval in item.FieldValues.)
    string metavalue = Convert.ToString(metaval.Value);
    //if(String.IsNullOrEmpty(metaval.Value.ToString()))
    if (!(String.IsNullOrEmpty(metavalue)))
    itemmetadata.Add(metaval.Key, metaval.Value.ToString());
    else
    itemmetadata.Add(metaval.Key, "");
    fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, item.File.ServerRelativeUrl.ToString());
    outputStream = new FileStream(@"C:\Users\jainruc\Desktop\Sudhanshu\ComDownload\" + filename, FileMode.Create, FileAccess.Write);
    fileInfo.Stream.CopyTo(outputStream);
    outputStream.Dispose();
    outputStream.Close();
    //Uploading
    string srcpath = @"C:\Users\jainruc\Desktop\Sudhanshu\ComDownload\";
    string siteName = @"http://ui3dats011x:2015/sites/techunits/";
    string docLibraryName = @"http://ui3dats011x:2015/sites/techunits/Published%20Documents/Forms/AllItems.aspx";
    UploadFile(srcpath, siteName, docLibraryName, itemmetadata,filename);
    }//End of try
    catch (Exception ex)
    Dts.TaskResult = (int)ScriptResults.Success;
    public void UploadFile(string srcpath, string siteName, string docLibraryName,Dictionary<string,string> metavalue,string filename)
    using (ClientContext ctx = new ClientContext("http://ui3dats011x:2015/sites/techunits/"))
    try
    List LibraryName1 = ctx.Web.Lists.GetByTitle("Published Documents");
    ctx.Load(LibraryName1.RootFolder);
    ctx.Load(LibraryName1);
    ctx.ExecuteQuery();
    ctx.Credentials = new NetworkCredential("jainfgfgh", "Pashg8878", "mydomain");
    //Loop for getting all files one by one
    using (var fs = new FileStream(String.Concat(srcpath,"/",filename), FileMode.OpenOrCreate))
    string fileUrl = String.Format("{0}/{1}", LibraryName1.RootFolder.ServerRelativeUrl, filename);
    Microsoft.SharePoint.Client.File.SaveBinaryDirect(ctx, fileUrl, fs, true);
    UpdateMetadata(fileUrl,ctx,metavalue);
    //End of looping
    }//End of try block
    catch (Exception ex)
    }//End of Using
    }//End of function
    public void UpdateMetadata(string uploadedfileurl,ClientContext ctx,Dictionary<string,string> mvalue)
    Microsoft.SharePoint.Client.File uploadedfile = ctx.Web.GetFileByServerRelativeUrl(uploadedfileurl);
    //create an object of the class holding all the properties of the document
    ctx.Load(uploadedfile);
    ctx.ExecuteQuery();
    FileProperty fileProperty = new FileProperty();
    fileProperty.Description = mvalue["Description0"];
    fileProperty.Title = mvalue["Title"];
    fileProperty.DocumentType = mvalue["Document_x0020_Type"];
    fileProperty.DocumentCategory = mvalue["DocumentCategory"];
    fileProperty.DocumentNumber = mvalue["DocumentNumber"];
    fileProperty.DocumentTitle = mvalue["DocumentTitle"];
    //fileProperty.PublishDate = Convert.ToDateTime(mvalue["PublishDate"]);
    // fileProperty.DocumentStatus = mvalue["DocumentStatus"];
    List<KeyValuePair<string, string>> columnKeyValueList;
    //create a list of item need to be updated or added to sharepoint library
    List<FileProperty> propertyList = new List<FileProperty>();
    propertyList.Add(fileProperty);
    columnKeyValueList = fileProperty.getColumnKeyValueListProducts();
    ListItem item = uploadedfile.ListItemAllFields;
    foreach (KeyValuePair<string, string> metadataitem in columnKeyValueList)
    item[metadataitem.Key.ToString()] = metadataitem.Value.ToString();
    //item["Title"] = uploadedfile.Title;
    item.Update();
    ctx.Load(item);
    ctx.ExecuteQuery();
    #region ScriptResults declaration
    /// <summary>
    /// This enum provides a convenient shorthand within the scope of this class for setting the
    /// result of the script.
    /// This code was generated automatically.
    /// </summary>
    enum ScriptResults
    Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
    Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    #endregion
    sudhanshu sharma Do good and cast it into river :)

  • How do I get Adobe Acorbat to open a .pdf file from a sharepoint library without having to checkout the file

    I have a customer that is using Adobe Acrobat pro version 10.1. When they try and open a .pdf file from a SharePoint site, the user is prompted to check out and open the file or open the file. Is there a way to get Adobe Acrobat to open the .pdf file without prompting to check out or open?
    Thanks
    Jim

    This is mostly a lion thing, rather than a PSE thing. To disable applications opening where they left off last time for all the programs on your computer, go to system preferences>general and untick this box:
    You can also do on a per-program basis, but it's more complicated and the best thing to do is to search around for directions on the web and see which way is least uncomfortable for you.
    There's an odd little glitch in PSE that it opens the last image you had open, even if you closed it before quitting last time. Adobe says this is correct behavior, but of course it isn't.

  • I am new sto Lightroom and have also just changed from Apple to PC.  I cannot figure out how to download photos from the Photoshop library to a file that will be sent to MPIX for processing.  Also, does Lightroom have an easy access to a photo processing

    I am new to Lightroom and have also just changed from Apple to PC.  I cannot figure out how to download photos from the Photoshop library to a file that will be sent to MPIX for processing.  Also, does Lightroom have an easy access to a photo processing capability such as MPIX?

    Use the trackpad to scroll, thats what it was designed for. The scroll bars automatically disappear when not being used and will appear if you scroll up or down using the trackpad.
    This is a user-to-user forum and most people will post on here if they have problems. You very rarely get people posting to say there update went smooth. The fact is the vast majority of Mountain Lion users will not be experiencing any major problems with the OS, or maybe with apps which are not compatible, but thats hardly Apple's fault if developers don't update their apps.

  • Not moving the .pdf files from Drop Off Library to my custom document library in sharepoint 2013

    Hi Team,
    I am trying to move the .pdf files from drop-off library to custom library.
    For the above requirement i am writing content organizer rule condition like (On Group: Document content types & Type: Document)
    Property: Name
    Operator: Ends with
    value: .pdf
    and Setting value in target location like
    /sites/MS/ProductGuides
    How to solve the issue
    If help appriciated
    Regards,
    Dhaya

    Hi Dhaya,
    I created a Content Organizer rule like this:
    When uploading a .pdf file to the Drop Off library, it is moved to the destination library immediately:
    I suggest you create a similar rule as above for another test to see if the issue still persists.
    Thanks 
    Patrick Liang
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Adding Multiple files to many Sharepoint Sites based on the Sites Code (Splitting the data using a code)

    Hi,
    I'm pretty new to Sharepoint and wanted to ask a question to see if it can actually do what we need it to do.
    We would have a top Site within a collection and under this we would have 400 sites for different sections of the business (External) Lots of teams create documents for all these sites and use the Code of the site in each document so we know what business
    site its going to. For example 67890_BusinessReportMay.docx We know this document should be heading to site 67890 
    We have lots of services sending data to these 400 business sites. If we were to do them manually it would take most of our time to go to each site and upload the documents, even if we could do all the sites documents in 1 multiple upload. We still have
    to go to each site to do it
    Is there an easy answer to this? At present I have folders to match each of the 400 Sharepoint Sites and I use an Integration Services package to move all the documents into these 400 Matching folders. I do this using the Code at the start of each file name.
    If it doesn't have a code its put into an error folder and reported back on.
    Then I want something to automatically go through each of these folders and load them into the Sharepoint Sites document libraries. 
    OR
    Say you have 600 files all going to the 500 sites on Sharepoint in one folder. The File contains meta data regarding the Sites Code.  Using this you can split the files and automatically pull them across to the Sharepoint Sites without having to go
    into each Sharepoint Site?
    I'm thinking that you cant do this and I'm hoping I'm wrong. Any help would be greatly appreciated.  
    Debbie

    Hi Debbie,
    According to your description, my understanding is that you want to move the documents to different sites based on the code in the name of the files.
    I recommend to create workflow and set the workflow to start when an item is created to achieve this goal.
    As there is no built-in action which can move the documents cross site, we need to use the custom activity 'Copy List Item Extended' which need to be downloaded from
    http://spdactivities.codeplex.com/.
    Please per the steps in the link below to deploy the custom activity to SharePoint:
    http://social.technet.microsoft.com/Forums/en-US/82609160-152f-461a-9a19-0e996f5a309b/sharepoint-2010-archiving-the-files-from-one-document-library-to-another-document-library-in
    After that, we can create a workflow to meet the need.
    Here is the detailed steps to create the workflow:
    Create a column in single line of text type(called NO for example) in the library where the documents are uploaded, and input value manually in the column to store the code when uploading the documents. (We can also use workflow to extract the code from
    the name of the documents if the codes are always 5 numbers.)
    Create a workflow associated with the library and set the workflow to start when an item is created.
    Select If current item field equals value, change the settings to be If Current Item: NO equals 67890.
    Select Copy List Item Extended, change the settings to be Copy item in Current Item to list at site 67890 URL.
    Select Delete Item, change the settings to be Delete Item in Current Item.
    Create other conditions from step 3 to step 5 to copy the documents to different sites and delete current documents.
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • Having trouble opening Crystal Report files from a document library

    I am trying to open Crystal Report .rpt files from a document library in either the native, client Crystal Reports software or in Crystal Reports Viewer. When I add the Crystal Report files to a document library and attempt to open them SharePoint displays
    a prompt asking me to save the file locally instead of opening the file. I have done a lot of research online and found several sites discussing similar scenarios, however, I have not been able to get these solutions to work. Here is a short list of sites
    I have referenced for possible solutions:
    http://naadydev.blogspot.com/2013/03/crystal-report-viewer-sharepoint-2010.html?showComment=1383339860122
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/52aabf2d-10dc-424c-bd50-124fc972a9b9/crystal-report-viewer-integration-with-sharepoint-2010?forum=sharepointgeneralprevious
    http://www.codeproject.com/Articles/42731/Crystal-Reports-WebPart-for-SharePoint
    Here are the steps I have done to try to get the .rpt files to open:
    Added the Crystal Report extension .rpt as a MIME type
    Installed the Visual Studio 2012 Crystal Reports Viewer toolbar
    Installed the 64-bit Crystal Reports runtime
    I have also created a solution file based off the Code Project site which partially works, but not quite right. In this project I have created a document library called "Crystal Reports rpt Files" and deployed the solution file to a site. When
    I open the Web Part Maintenance Toolbar I can see the selected .rpt file in the drop-down, but no Crystal Report file is displayed on the page itself.
    I am not sure what I am doing wrong. Does anyone have experience working with Crystal Reports and SharePoint 2013 (or earlier versions) that could lend some advice?
    Thank you,
    Alex

    We are having the exact same issue, has anyone resolved this yet?

  • Want to remove Lossless files from dual-format library, keep elsewhere

    My iTunes library consists entirely of music ripped from audio CDs. Each CD was ripped twice, once in Apple Lossless format, once in AAC format.
    For several reasons (chief among them the desire to free up a lot of disk space on my iMac), I want to remove the Lossless files from my iTunes library. But I want to keep all of the AAC files there as they are, along with my playlists (all based on the AAC files only).
    However, for a measure of future-proofing, I still want to keep the Lossless files. And whenever I buy a CD, I want to still import it as both Lossless and AAC, keeping the Lossless files handy while adding the AAC files to the iTunes library.
    I must obviously begin with an external Firewire drive big enough for my Lossless content. How do I proceeed from there?

    I would take this approach, but others might have better suggestions.
    First, when you get your external drive, copy the entire iTunes folder to the external drive which will copy everything (media files, database files, artwork, etc.).
    Assuming you use the iTunes default settings where iTunes copied added items to your iTunes folder and organizes your library (meaning - everything is all self contained in the iTunes folder), then all you have to do is drag & drop your iTunes folder (not just the iTunes Music folder you find inside the iTunes folder) to the external drive and copy the entire thing.
    If you want to test that it worked or would like to actually start using it from that location instead, use these instructions when you start iTunes to point it to the new location...
    How to open an alternate iTunes Library file or create a new one
    http://docs.info.apple.com/article.html?artnum=304447
    If you are just testing, then close iTunes after you verify it works, and restart iTunes again with the same instructions and point it back to your internal drive (original) location. Now you can sort your library by "Kind" which is the format it is encoded as and all the Apple Lossless files will be grouped together. Select the first one, scroll down to the last one, Shift-Select the last one which will select all the ones in between and hit delete! Now your internal drive library is everything except Apple Lossless.
    If you wish, you can switch back to the external drive library and do the same for the AAC files.
    Now when ever you add a new CD you can do it a couple ways. But probably the most straight forward is to simply put in the CD, open the internal library, import as AAC files. Switch to the external library and import again as lossless.
    Patrick

  • Error in PDF Conversion while downloading file from application server

    Hi,
    I am facing a problem in which i have to download file from application server which is a PDF file (output of SAP Script). I am downloading this file using following code in BSP technology:
    * event handler for data retrieval
    EMPCD = REQUEST->GET_FORM_FIELD( 'emp' ).
    MONTH = REQUEST->GET_FORM_FIELD( 'mn' ).
    YEAR  = REQUEST->GET_FORM_FIELD( 'yr' ).
    W_IND = 'N' .
    DATA : wa_zform16 type  zform16.
    DATA : file_path type string.
    DATA : l_pdf_len type string.
    DATA STR TYPE STRING.
    DATA: OUTPUT    TYPE STRING ,
          L_XSTRING TYPE XSTRING ,
          APP_TYPE  TYPE STRING.
    DATA: PDF_TABLE TYPE  RCL_BAG_TLINE.
    DATA PHY_NAME_OUT     TYPE SAPB-SAPPFAD.
    concatenate '/usr/sap/put/form16/' EMPCD '_' YEAR '.PDF'  into file_path
    *PHY_NAME_OUT = '/usr/sap/put/form16/01000200_2007.PDF'.
    PHY_NAME_OUT = file_path.
    OPEN DATASET PHY_NAME_OUT FOR INPUT IN TEXT MODE ENCODING default.
    IF SY-SUBRC IS INITIAL.
      DO.
        READ DATASET PHY_NAME_OUT INTO STR.
        IF SY-SUBRC IS INITIAL.
          CONCATENATE
              OUTPUT
              STR
              CL_ABAP_CHAR_UTILITIES=>CR_LF
          INTO OUTPUT.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
      APP_TYPE = 'APPLICATION/PDF'.
      CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
        EXPORTING
          TEXT     = OUTPUT
                MIMETYPE = 'APPLICATION/PDF'
    *            MIMETYPE = 'APPLICATION/PDF;charset=utf-16le'
        IMPORTING
          BUFFER   = L_XSTRING.
      CALL METHOD CL_BSP_UTILITY=>DOWNLOAD
        EXPORTING
          OBJECT_S            = L_XSTRING
          CONTENT_TYPE        = APP_TYPE
          CONTENT_DISPOSITION = 'attachment;filename=webforms.pdf'
          RESPONSE            = _M_RESPONSE
          NAVIGATION          = NAVIGATION.
    Result of this code is : there is a pop up asking to open or save pdf format and process is complete, but i have problem in downloaded file.
    At the time of creation i have put BMP image for signature in PDF file and it is working fine but when i upload that file in Application server and then download it with above used code it save the PDF file but when i open that file so whereever i have used signature that page gives error and could not display that scanned signature.
    Can anyone please help me in this regard.
    or is there any possibility from which i can download that file just like File transfer from BSP.
    Keep in mind that i am using BSP technology so all GUI based function module to download file are not working.
    waiting for your reply.....
    Regards,
    Gagan

    Hi Raja,
    I have standard sap form for TDS Certificate on which i have include an BMP image for digital signature and download that script into pdf format.While i download that PDF looks ok but it is not working in BSP.
    Regards,
    Gagan

  • Can't download file from Gmail...

    I have the latest version of Safari and now I can't download files from my Gmail...

    Might be a cookies, cache, extensions, or plug-ins issue.
    From your Safari menu bar click Safari > Preferences then select the Privacy tab.
    Click:  Remove All Website Data
    Then delete the cache.
    Open a Finder window. From the Finder menu bar click Go > Go to Folder
    Type or copy paste the following
    ~/Library/Caches/com.apple.Safari/Cache.db
    Click Go then move the Cache.db file to the Trash.
    Quit and relaunch Safari to test.
    If that didn't help, from the Safari menu bar click Safari > Preferences then select the Extensions tab. Turn that OFF, quit and relaunch Safari to test.
    If that helped, turn one extension on then quit and relaunch Safari to test until you find the incompatible extension then click uninstall.
    If it's not an extensions issue, try troubleshooting third party plug-ins.
    Back to Safari > Preferences. This time select the Security tab. Deselect:  Allow plug-ins. Quit and relaunch Safari to test.
    If that made a difference, instructions for troubleshooting plugins here.

  • Get files from the Photo Library programatically

    Hi All,
    I want to get the image files file from the Photo library of iPhone and add them to and array of images and then wanted to display them one by one on a view so that it looks like animation. But I dont know hoe I will get the path of internal file system of iPhone on unlocked iPhone .
    I know that we can use the UIIMagePiker class to do that but in that case the Photo application is invoked and then we select the image from the gallery instead i want to do this internally without any user interaction.
    Also let me know if we can delete the images from the gallery once shown in the view.
    Any Help is appreciated.

    Or there is the long, laborious emailing of each photo to your email account....
    I know it's a long workaround but, sigh, that's all I can come up with at the moment, either that or publish them to your web gallery and download them from there back onto your macbook

  • Downloading files from harddrive to lightroom2

    Please help.
    I can not download jpeg files from harddrive to the library in Lightroom 2. Lightroom freezes.I try to download one file or multiple files folder with the same result. I do not have this problem when downloading files from card rider.

    THANK YOU FOR YOUR HELP.
    LR showing 0 photos in the catalog.
    This is my problem: I shot wedding with 3 cameras and downloaded files in to
    one folder on internal drive (Jpegs) After that i synchronized file in that
    folder  by time shooting.  My next step wold be to import  the folder to
    light room, but ligtroom freezes and i have massage No photos found..
    If i import files from memory card to the lightroom-I have no problem.
    I see only one solution- to move back files from internal drive to the
    memory card and import them to LR from the card. But I afraid that the
    quality of images would deteriorate with so many manipulations.

  • Download files from libraries

    I have a document Library but I can't seem to download anything from my own library?
    How does one simply download a file from a library?

    In order to have your own personal copy of a document, you can download a copy.
    Open the document library
    Hover your cursor over the name of the document
    Using the drop‐down menu that appears on the right, choose the Send to option and then the Download a Copy option
    Click the Save button
    Browse to the location on your computer where you would like to save the document
    Click the Save button
    When the Download Complete message appears, click the Close button
    Whenever you see a reply and if you think is helpful,Vote As Helpful! And whenever you see a reply being an answer to the question of the thread, click Mark As Answer

  • How can I copy mp3 files from my Itunes library to an SD card for use in a non-apple phone?

    How can I copy mp3 files from my Itunes library to an SD card for use in a non-apple phone?  I can physically copy the tunes as mp3's but the phone does not seem to be able to play all of them.   Do I need to copy an entire album or can I just pick & choose individual songs?   The phone is question is an LG running who knows what for an operating system.

    AAC is Advanced Audio Coding.  Basically it's a format that sounds better than MP3 but doesn't take up as much space as a lossless format (like you'd have on a CD).  More than likely you've had that encoding turned on when you ripped your music into itunes (it's the default encoder).  Therefore your LG phone won't play them.
    You need to turn off the AAC format by going to the iTunes menu, Preferences, General (at the top), then clicking the "Import Preferences" button.  Change the AAC Encoder to MP3 Encoder.  After that you'll have to make MP3 copies of your songs by right clicking them and selecting "Create MP3 Version."  You'll get a copy of the song that should transfer to your SD card and have MP3 encoding.  Hopefully your phone will play that.

  • [HELP] Download file from FTP server

    hi,
    I want to write a java program that can download and upload files from ftp server. Currently I only manage to upload a file to ftp server but i cant download file from ftp server. Here is the source code that only allow user to upload file. Anyone can give me some guidelines so that my program can download and also upload file? thx.
    import java.io.*;
    import java.net.*;
    public class FTPUpload {
    private static final int CTRLPORT = 21;
    private static Socket ctrlSocket;
    private static PrintWriter ctrlOutput;
    private static BufferedReader ctrlInput;
    private static byte[] localHostAddress;
    public final static String DIR = "C:\\zip\\";
    public static void main(String[] args) {
    try {
    String host = "192.168.1.1";
    String loginName = "testuser";
    String password = "password";
    String dirName = "/home/testuser";
    String fileName = "hello.zip";
    ctrlSocket = new Socket(host, CTRLPORT);
    localHostAddress = ctrlSocket.getLocalAddress().getAddress();
    ctrlOutput = new PrintWriter(ctrlSocket.getOutputStream());
    ctrlInput = new BufferedReader(new InputStreamReader(ctrlSocket.getInputStream()));
    ctrlOutput.println("USER " + loginName);
    ctrlOutput.flush();
    ctrlOutput.println("PASS " + password);
    ctrlOutput.flush();
    ctrlOutput.println("CWD " + dirName);
    ctrlOutput.flush();
    ctrlOutput.println("TYPE I");
    ctrlOutput.flush();
    FileInputStream fis = new FileInputStream(DIR + fileName);
    Socket dataSocket = dataConnection("STOR " + fileName);
    OutputStream outstr = dataSocket.getOutputStream();
    int n;
    byte[] buff = new byte[1024];
    while ((n = fis.read(buff)) > 0) {
    outstr.write(buff,0,n);
    dataSocket.close();
    fis.close();
    ctrlOutput.close();
    ctrlInput.close();
    ctrlSocket.close();
    }catch (Exception e) {
    e.printStackTrace();
    private static Socket dataConnection(String ctrlcmd)
    throws IOException,UnknownHostException {
    String cmd = "PORT ";
    ServerSocket serverDataSocket = new ServerSocket(0,1);
    for (int i=0;i<4;i++) {
    cmd = cmd + (localHostAddress[i] & 0xff) + ",";
    cmd = cmd + (((serverDataSocket.getLocalPort())/256) & 0xff)
    + ","
    + (serverDataSocket.getLocalPort() & 0xff);
    ctrlOutput.println(cmd);
    ctrlOutput.flush();
    ctrlOutput.println(ctrlcmd);
    ctrlOutput.flush();
    Socket dataSocket = serverDataSocket.accept();
    serverDataSocket.close();
    return dataSocket;
    }

    Or just use a java.net.URL("ftp://...) ..., get its input stream, and away you go ...

Maybe you are looking for

  • Scripting to load all pdfs in a month into the place command?

    Hello, I was wondering if anyone knows of a script that allows for you to place all pdfs within a set date range from a folder into an InDesign document? I am looking to do my monthly report and each month I have to go out and get each one, would be

  • JPopupMenu won't die

    Hi, I'm using a JPopupMenu on a JList and I'm experiencing an odd problem. The menu never actually closes itself under a certain circumstance. Say for instance you invoke the popup menu. If you click outside the frame, the menu closes fine. However,

  • Zoom H2n and Garageband on MacBook Pro

    Hi, I just bought the Zoom H2n. I want to use it primary as a handheld recorder, what it is, but I also want to use it as a USB audio interface connecting to Garageband. The first tests are very promising. I have a question though. When I connect the

  • Does anyone have an enzotech ultra-x hsf on their p6n sli plat?

    I'm looking for a replacment hsf for my c2d and I tried a thermaltake tmg-i1 but the legs refused to lock into the holes so I'm rmaing it back.  I've been looking at the tec (peltier) coolers and came across a chilltec unit.  I pondered it for a litt

  • Good "how to" book

    I am new to Mac and was already to start learning how to use iWork 06 and purchased a self-help book with iWork 08 came out. Does anyone know if an iWork 08 book is out and where? Setting aside Numbers, can I still use iWork 06 without worrying about