У меня проблема Coldfusion / Sharpoint / Excel (Сохранить)

Хорошо, мне нужна помощь на высоком уровне или какая-то опытная помощь.

Это проблема среды, а не проблема с кодом. Ошибок нет, и файл сохраняется.

Я использую утилиту Sharepoint 2013 REST api, и я получаю «файл Excel» и сохраняю из cfile coldfusion, action = 'write'. Полученный файл поврежден двумя способами.

1st. Расширение файла .xlsm, измененное на zip, не позволяет работать с новой структурой офиса / файлом. Второй файл Excel не открывается в Excel, и Excel не смог исправить повреждение.

Soooo .. cffile action readBinary существует, и дамп отобразит «желтый» поле в дампе и обрезает данные.

cffile action «write» существует, «writebinary» не существует …

Когда я вытаскиваю данные из Sharepoint и выгружаю его, его стандартный синий ящик выглядит как данные, но не усекается, и не является «желтым», как данные «readBinary».

Документация говорит, что write не нужен двоичный код, он просто распознается в двоичном формате.

// модификация возвращаемых данных с помощью этих функций не помогает toBinary () не работаетBinary (toBase64 ()) работает, но поврежден toBase64 () работает, но коррумпирован прямое сохранение работает, но поврежден …

получение из sharepoint как REST с двоичным флагом не изменяет коррумпированный результат

Я попытался сэкономить в базовой java, поврежденной …

Открытие поврежденного файла в блокноте ++ выглядит как файл excel, также открытый с помощью блокнота ++ в верхней части файла. (Нет очевидных проблем с данными)

Странно, но в конце файла есть ссылки на файлы для несуществующих файлов, например 0000.dat, trash.dat и т. Д.

As the save, and the get (from sharepoint) are all 'working' and there would be too much code so I am not posting specific code. 

Если у вас есть идеи, которые не были опробованы или решили эту конкретную проблему, я бы хотел услышать вашу экспертную идею.

Благодарю Гэри

    Хорошо, я собираюсь съесть свои слова, возможно, был полезен код публикации. У меня все еще было 15 версий функции, это действительно было бы странно.

    Мой исходный код имеет двоичную часть для Sharepoint, но не часть CFHTTP. Ответ / проблема была там, coldfusion не поддерживал двоичные данные. После добавления параметра «дамп» отразил изменение с «желтым» двоичным цветом.

    ex: для вызова cfhttp! ::

     getAsBinary="true" // default is NO not AUTO -> should be auto adobe 

    До:

     rc.spActionURL = "https://{site}.sharepoint.com/sites/#this.sp365.orisApp#/_api/Web/GetFileByServerRelativeUrl('/sites/#this.sp365.orisApp#/#arguments.libraryPath#/#arguments.folderName#/#arguments.fileName#')/$value"; //Perform SharePoint ODATA Query as long as access_token was successfully received. cfhttp(method="get", charset="utf-8", url="#rc.spActionURL#", result="rc.spURLRequestResult", ) { cfhttpparam(name="Accept", type="header", value="application/xml"); cfhttpparam(name="Content-Type", type="header", value="application/vnd.ms-excel.sheet.macroEnabled.12"); cfhttpparam(name="Authorization", type="header", value="#arguments.AccessToken#"); cfhttpparam(name="binaryStringRequestBody", type="header", value="true"); } ; 

    ПОСЛЕ:

     rc.spActionURL = "https://{site}.sharepoint.com/sites/#this.sp365.orisApp#/_api/Web/GetFileByServerRelativeUrl('/sites/#this.sp365.orisApp#/#arguments.libraryPath#/#arguments.folderName#/#arguments.fileName#')/$value"; //Perform SharePoint ODATA Query as long as access_token was successfully received. cfhttp(method="get", getAsBinary="true" // default is NO not AUTO -> should be auto adobe charset="utf-8", url="#rc.spActionURL#", , result="rc.spURLRequestResult", ) { cfhttpparam(name="Accept", type="header", value="application/xml"); cfhttpparam(name="Content-Type", type="header", value="application/vnd.ms-excel.sheet.macroEnabled.12"); cfhttpparam(name="Authorization", type="header", value="#arguments.AccessToken#"); cfhttpparam(name="binaryStringRequestBody", type="header", value="true"); } ; 
    Давайте будем гением компьютера.