transfer files to a network shared folder


I need to write a program for my Uno or Mega that will transfer text files stored on an SD card to a shared folder on a network drive using the Ethernet shield. I think FTP is the way to go but not sure how to approach it nor have I found any examples on the web with this sort of file transfer to give some insight. Unfortunately the serial port is not an option nor is accessing the files through a web page but I have accomplished these tasks hoping they would shed some light on file transfer to a network drive (they didn't...).

  1. Can anyone please confirm that file transfer to a shared folder on a network drive is possible with an arduino? For example, write the file helloWorld.txt stored on the SD card to a network folder called arduinoFiles on the (R:).

  2. Please offer advice, reading materials on the subject and examples of code that will nudge me in the right direction for understanding how it's accomplished?

Thanks for your help!


As long as the host-side application can communicate with the disk storage subsystem, this is possibly one avenue: Arduino over Ethernet data transfer


To access a windows file share is probably a bit tricky - those are SMB (aka Samba). A quick googling indicates that a Samba client for arduino has been written! So you can try your luck with those.

FTP is also an option. It is inconceivable that someone hasn’t made an arduino do FTP, and it’s probably been libraryized somewhere. It is probably easier on memory/stored code size than samba, but you’d need an FTP server running on either the file server (ideally) or another device that can access the drive.

You also could probably get it to work over http - this would require the most non-arduino work (making a little webapp running on a computer with access to the drive to grab and save the data, if you have the arduino push the data out, or a script to request and save data periodically if you have the arduino act as http server and the computer pull the data from it), but the arduino side would be the easiest out of these, since everyone does http requests.

The decision of which to use will be informed by the other parameters of the project, particularly the size of files, any speed requirements, etc.

Thanks to mrburnette and DrAzzy for your ideas. Researching all of your suggestions, will post again if I need clarification.