2016-06-29 3 views
1

Я на самом деле создаю блестящее приложение, размещенное на shinyapps.io. Для чтения и использования моих данных я связываюсь с учетной записью Dropbox с пакетом rdrop2. Я хотел бы создать файл png в соответствии с введенным пользователем в моем Dropbox. Обычно я создаю PNG-файл на моем рабочем каталоге так:Создание png-файла на Dropbox для блестящего приложения

png("test.png") 
plot(...) 
dev.off() 

Я не спасают только участки, как PNG, но и grid.tables.

Я могу получить файл из моего Dropbox с функцией «drop_get».

Моя единственная проблема в том, что я не знаю, как сохранить мой мгновенно созданный png прямо на моем Dropbox. Я попытался сохранить файл PNG в переменной, такой как varPNG<-png('test.png') ... и сохранил ее с функцией «drop_upload», но она не работает.

Может кто-нибудь мне помочь?

+0

Если не drop_upload просто взять имя файла? (И не переменная). Как в drop_upload ("test.png")? – ShadowMitia

+0

Абсолютно, вот почему он вообще не работает. Но когда я использую png («test.png») ... dev.off(), я думаю (не уверен), что png не может быть сохранен на моем компьютере (сервере) (особенно, когда я пытаюсь использовать приложение с другим компьютер), поэтому я не могу использовать drop_upload ("test.png"), потому что png() не будет сохранять изображение непосредственно в моем Dropbox. Мое приложение хорошо работает на локальном, но в режиме онлайн, сообщение говорит «Отключено от сервера» и перезагружает приложение, когда я показываю изображения. – Smich7

+0

Что вы подразумеваете под «сервером»? png() не будет напрямую загружать в dropbox no. Он сохраняет в том же каталоге, что и ваше приложение. Вот почему вы используете rdrop2, чтобы взять файл и поместить его в свой Dropbox. Я предполагаю, что у вас есть какая-то проблема с вашим приложением при использовании в Интернете. – ShadowMitia

ответ

0

EDIT: Я не знаком с блестящим приложением, чтобы помочь, извините. Хотя я нашел эту вещь: http://shiny.rstudio.com/gallery/image-output.html, которая может вам помочь.

В принципе, у него блестящая функция renderImage для управления созданием изображений. Надеюсь это поможет.

OLD ОТВЕТ:

документация для пакета here для справки.

Убедитесь, что вы позволили rdrop2 получить доступ к вашему Dropbox (см. Ссылку)!

Из ссылке:

write.csv(mtcars, 'mtcars.csv') 
drop_upload('mtcars.csv') 
# or upload to a specific folder 
drop_upload('mtcars.csv', dest = "drop_test") 

You can also do this for any other file type and large files are supported regardless of your memory. 

Таким образом, вы не должны хранить изображения в переменной и попытаться загрузить это. Вместо сохранить файл, как вы могли бы сделать, как обычно, а затем сделать:

drop_upload("filename.png") 
+0

Thx но когда я использую drop_upload ("filename.png"), я думаю, что мое приложение не находит файл, который я создал. В моей петле я делаю: png (паста («test», les_nb [i], «.png»), ширина = 350, высота = 145) ... dev.off() ... drop_upload (file = paste ("test", les_nb [i], ".png", sep = ""), dest = 'optimaentendre/Images') ... eval (parse (text = paste ("output $ table", les_nb [i], "<- renderImage ({return (list (src = drop_get ('optimaentendre/Images/test", les_nb [i], ". Png '), width = ifelse (donneCateg (i + 1) == 12,300,250), height = ifelse (donneCateg (i + 1) == 12,150,350)))}, deleteFile = F) ", sep =" "))) Так что я думаю, что я делаю то, что вы предлагаете – Smich7

+0

Вы сказали, что он работает локально. Вы видите файлы в Интернете? Не в Dropbox, а на сервере. – ShadowMitia

+0

Также это помогает: http://stackoverflow.com/questions/33177033/shinyapp-dropbox-authentication-with-rdrop2 – ShadowMitia