USB Transfer of form+media .csv file to ODK Collect

Hi ODK Community,

In my dev environment I have an ODK Aggregate Server setup.

However, I'm currently away from my office; trying to update a form that I have on my laptop. I've been able to build the XML Xform file using xlsform from a modified XSLX file. When I transfer both the XML and accompanying media file (a .csv file) to /odk/forms on my Android device via usb and try to open the form via ODK collect, the ODK app reports that it cannot find the .csv file.

If it helps, I've also tried creating a (form name)-Media folder in the same directory, placing the .csv media file in there; I still get the same error.

I'm currently using ODK Collect v1.10.2

Hi @TacticaL
Looks like you do that in a proper way. You should paste an xml file to odk/forms/ and .csv file to odk/forms/"form-name"-media folder. Could you attach your files?

Regards,
Grzegorz

1 Like

Actually, could you forward me either a link to documentation with detailed list of steps to manually upload a form with media onto a device? Or if you can send me a sample form with media (directories in a zip, etc) for me to verify that I did not miss anything?

If it helps, I noticed that when I uploaded forms with aggregate, it creates extra files (like a .db file) in the media folder with the form, that I did not have when I uploaded manually.

I can confirm that you are doing this correctly, @TacticaL. I don't see this in the docs at https://docs.opendatakit.org, but @adammichaelwood should be able to file an issue so we can add it.

You can find a sample form and CSV here:
fruits.csv (70 Bytes)
pull-data.xlsx (5.4 KB)

And here are the commands I used.

$ adb push pull-data.xml /sdcard/odk/forms/
$ adb push fruits.csv /sdcard/odk/forms/pull-data-media/fruits.csv

If you need more examples, connect your device to https://opendatakit.appspot.com, download the New Widgets form and you'll see how the folders are setup on the SD card.

The .db file only appears after the form has been loaded. You do not need to create it.

Issue added: