Выпуск № 1Google Docs файл загрузки и собираемые Выпуск
Когда я загружаю файл в Google Docs, которые я получаю код состояния «201» создан, но когда я пытаюсь открыть файл, кажется, что я» я делаю что-то неправильно, потому что я не могу его открыть, и когда я пытаюсь загрузить и открыть его на своем ПК, я вижу двоичные данные вместо текста или изображения. Текущий язык - APEX, но я думаю, что это довольно понятно.
Прежде всего, я получаю URL-адрес загрузки, а затем помещаю данные на этот URL-адрес;
public void getUploadURL()
{
Httprequest req = new Httprequest();
req.setEndpoint('https://docs.google.com/feeds/upload/create-session/default/private/full?convert=false');
req.setMethod('POST');
req.setHeader('GData-Version', '3.0');
req.setHeader('Authorization', 'OAuth '+accessToken);
req.setHeader('Content-Length', '359');
req.setHeader('X-Upload-Content-Type', fileType);
req.setHeader('X-Upload-Content-Length', fileSize);
Dom.Document requestDoc = new Dom.Document();
String xml =
'<?xml version=\'1.0\' encoding=\'UTF-8\'?>'
+'<entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">'
+'<title>'+fileName+'</title></entry>';
requestDoc.load(xml);
req.setBodyDocument(requestDoc);
Http h = new Http();
Httpresponse res = h.send(req);
System.debug('response=\n'+res.getHeader('Location'));
uploadFIle(res.getHeader('Location'));
}
public void uploadFIle(String uploadUrl)
{
Httprequest req = new Httprequest();
req.setEndpoint(uploadUrl);
req.setMethod('PUT');
req.setHeader('GData-Version', '3.0');
req.setHeader('Authorization', 'OAuth '+accessToken);
req.setHeader('Host', 'docs.google.com');
req.setHeader('Content-Length', fileSize);
req.setHeader('Content-Type', fileType);
req.setBody(''+binaryData);
Http h = new Http();
Httpresponse res = h.send(req);
System.debug('response=\n'+res.getBody());
}
Что касается свойства "BinaryData" - я получить его со страницы, используя JavaScript следующим образом:
<input type="file" id="myuploadfield" onchange="getBinary()"/>
<script>
function getBinary()
{
var file = document.getElementById('myuploadfield').files[0];
fileSizeToController.val(file.size.toString());
fileNameToController.val(file.name.toString());
fileTypeToController.val(file.type.toString());
var r = new FileReader();
r.onload = function(){ binaryToController.val(r.result); };
r.readAsBinaryString(file);
}
</script>
r.onload = функция() {binaryToController.val (r.result); }; - это строка, которая отправляет двоичные данные файла моему контроллеру.
Выпуск № 2
Я пытаюсь переместить одну коллекцию (папку) в другой, и с помощью this article (вкладка протокола вместо .NET). Проблема в том, что мне нужно переместить коллекцию, а не копировать ее, и когда я добавляю свою коллекцию в другую, используя эту статью, я в настоящее время добавляю ссылку на свою коллекцию, а не перемещаю всю коллекцию из одного места в другое.
Пожалуйста, скажите мне, что я делаю неправильно.
Благодарим вас за рассмотрение.
Любая информация о втором выпуске? –