So I have to upload a bunch of files, some contain arbitrary data that might contain +,\r,\n,\ ext
So there are two different ways of using the FTP put command, one is in SLM data mode, the other is inline in quotes and I am having huge issues with both
**inline Mode?** AT#XFTP="open","******username********","*******password*****","*******domain*******" AT#XFTP="verbose","on" AT#XFTP="binary" AT#XFTP="put","test.txt","this is test content" AT#XFTP="close" **SLM Data Mode** AT#XFTP="open","******username********","*******password*****","*******domain*******" AT#XFTP="verbose","on" AT#XFTP="binary" AT#XFTP="put","test.txt" this is test content AT#XFTP="close"
We can talk about these two options:
Option1 is what I call inline mode:
if I try to include a \" inside the first option, or a \r\n in the next the modem will just lock up for a long time. Is there any way to send a bunch of arbitrary binary data as long as I escape it somehow? since backslash doesn't seem to be working
Example that will fail:
AT#XFTP="open","******username********","*******password*****","*******domain*******" AT#XFTP="verbose","on" AT#XFTP="binary" AT#XFTP="put","test.txt","this is\" test content" AT#XFTP="close"
Option2: Is what you guys call SLM data mode:
According to the documentation and from what I can see in the code, the only way the modem should exit SLM data mode is after a timeout, or by sending +++
But this doesn't happen, it only seems to exit SLM mode when I send a \r\n but there appears to be no way of escaping this?
Another problem is if I just pretend the first issue isnt a thing and remove all new lines from my data(which I really can't do, this is just for exploring the other problem I am having) and send +++ it shows up in the file that is uploaded to the server?
Example that will write part of a file and then get an error because it drops out of SLM too soon:
AT#XFTP="open","******username********","*******password*****","*******domain*******" AT#XFTP="verbose","on" AT#XFTP="binary" AT#XFTP="put","test.txt" this is \r\ntest content+++ AT#XFTP="close"
If I try to use the +++ as intended from the documentation:
AT#XFTP="open","******username********","*******password*****","*******domain*******" AT#XFTP="verbose","on" AT#XFTP="binary" AT#XFTP="put","test.txt" this is test content+++ AT#XFTP="close"
I end up with a file on the server including the +++:
this is test content+++
This example will also fail if you do not send a \r\n at the end of the test content line even though the +++ is supposed to terminate it.
Few quite baffling things that do not follow normal conventions or even the documentation?