My iPad app currently saves user input data in a TSV (tab separated values) file. At the end, the user emails this file out. The problem now is that I have to abide by certain policies because the information is sensitive. Is there a way to encrypt the TSV file before it is emailed?
Note: I've decided to EMAIL this TSV file because I have found NO other way to get this file onto a computer from the iPad's sandbox. If there is a better way than email, I will gladly implement it (EXCEPT using iTunes to download the app's sandbox data, which does NOT abide by the policies).
THANKS AHEAD OF TIME!
Use iFunBox. You can copy files directly from an iOS device. No jailbreak required.
To encrypt your file, you can use any encryption algorythm for text, like AES
Then, to send the data to your server, you can post it using a web service. ASIHTTPRequest can help for this.
Good luck with that!
Related
I have an app that uses chat stickers. I would like to add more stickers to the app over time without having to make the user download an update. I understand that I can store data in NSUserDefaults so was wondering if it's possible to get an app to download images from a server to the NSDefaults? Say via parse or a similar service? Is this kind of thing allowed in an app? I read something in the developer guidelines that placeholders could not be used. Any advice on this would be really appreciated. Thanks!
If you want to use parse the store all the images in a table in the parse file storage. Download the images using the Parse SDK. The downloaded images will be cached appropriately by the SDK so you won't need to handle the cache yourself.
You can read more about how to store files with Parse here: https://www.parse.com/docs/ios_guide#files/iOS
NSUserdefaults is not meant to store big files like images. It should only contain small amounts of data.
You will need to download the images and save them locally. To download the image to a file use NSURLDownload.
Since i cant play an audio file from a DB blob, i have to write it as a file, before i can play it.
Looking at the documentation, my choices are:
Ti.Filesystem.applicationDataDirectory
Ti.Filesystem.tempDirectory
Ti.Filesystem.externalStorageDirectory
Ti.Filesystem.applicationCacheDirectory
Considering that i want my file to be secret, so no other app can see that file, what is my best option?
EDIT: So the issue is more with Android, i'm afraid that any file browser will be able to find the file.
I'm assuming you're building for android, because ios data are sandboxed and not readily accessible by default (until ios8). Rather than hiding them, just encode them using base64encode(). And then you can decode when accessing the file with base64decode().
With that said, I've never had to use it. So, I don't have an example. But you can read about it in the api doc.
Hope that helps.
You haven't mentioned if you are building an app for iOS or Android. For example Ti.Filesystem.externalStorageDirectory is available only for Android (SD card).
Anyway if you want to save an audio file, you should save it in <Application_Home>/Documents ,so you should use Ti.Filesystem.applicationDataDirectory. Don't forgot to set up a remoteBackup flag see http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.Filesystem.File-property-remoteBackup
Also have a look at iOS Data Storage Guidelines for more details
https://developer.apple.com/icloud/documentation/data-storage/index.html
*If you want to save an audio file only because you need to play it ,but you don't need to store it in a fileSystem then is better to use Ti.Filesystem.tempDirectory
I'm trying to upload a file using the Dropbox API to Ink Filepicker, but I can't find any documentation on doing things like this.
It's done in the backend using Ruby rather than with the Javascript frontend because it needs to automatically upload new photos (Specifically inside the '/Camera_Uploads' folder) as they're added.
Has anyone had experience with doing something like that? One solution I saw was sharing the file, and then uploading them with the Filepicker REST API, but that seems like a bad way to approach this.
I think that your approach of sending a URL to File Picker is a good one, but I would suggest using a media link instead of a share link. Media links expire after four hours, so they're a good alternative to permanently sharing a file.
In Ruby, the method you want is DropboxClient.media.
I want to upload large video file. for that i want to create firefox addon. Is this possible by create firefox addons to upload large files on my server.
or is there any other way to upload large files on server.
please suggest.
If you are POSTing the data to the server as application/x-www-form-urlencoded then you should base64 encode it using btoa() and include it as one of the POST parameters in the request body (i.e. the string passed to XMLHttpRequest.send()):
postbody = "body=" + btoa(fileContents);
xhr.send(postbody);
If you are just downloading the file and uploading it right away, you might as well keep it in memory since you're presumably going to load it into memory anyway in order to base64 encode the contents.
Well if you're reading the file into memory then you should need an nsIFile at all. You can just download it using XMLHttpRequest and use responseText, uploading it in the way I described in the answer. If you do have an nsIFile then yes, that snippet describes how to read from it.
I assume you are wanting to upload via HTTP.
If so, the upload limit is usually decided by the server-side software. This affects both the maximum size and the length of time you have to upload it.
Without a server capable of taking an upload in chunks and reassembling it, you are limited in ways you can't get around through software.
If you want to upload via FTP on the other hand, there are a lot of options... look at FireFTP.
I have made firefox addons for fileupload.
I integrate jquery file upload.
I create widget. In the widget I made panel. In panel I create separate web page for file uploading. And panel is calling that page.
For more information you can mail me at chetansinghal1988#gmail.com
I am hoping to create an iPad app to do the following:
Download data from a user's machine/local server
Encrypt this data and store it securely on the iPad
Provide an API so that others can write specially signed apps that query this API to access the secure data.
Its is the last requirement I am starting to think is "impossible". Does anybody know whether it is possible or not and if not of any solutions?
Thanks
If you want to share data between applications, a good solution is to create a custom clipoard type, and have both applications access it.
You can also write your data in a file, and ask iOS to open that file in another application. This other application will then open and decrypt the contents of this file.