download image directory from server and store on iphone - mysql

I am trying to create a business directory application for my area, I am currently trying to create a sql DB with all of the realivant business information (name, address, opening hours etc). I am then plan to have a physical file directory where all logo images are stored, this directory will be stored somewhere on the server.
When the user starts the applicatoin they will be prompted to download all of the information on business listings (because its for a small community), I will then upload all of the data to the phone using NSURLConnection, the data will be Zlib NSData in the form of XML. I will store all of this data into coredata (which will act as the apps cache).
The next step is to download the directory of images I have stored on the DB.. but I have no idea on the best approach for this and would like some guidance, example code etc.
For instance would it be better to store the images into the sqlDB? I have read this is a bad idea so am trying the approach explained above.
I am still in the process of building the sqlDB but the difficulty I am having is comming up with a way to get the images onto the device and relate them to the correct business using an id field or something simlar.. or is there an easier way to do this?
any help would be appreciated.

Instead of storing the image directly in the DB, you could store the URL to access the image binary instead. This would maintain the relationship with the image without storing the large image data directly in the DB. You could then use the URL retrieved from the DB to download the image on the device and similarly store the path to the downloaded cached image in core data.

Related

Can I use mysql to store images and load them to my ios app?

I am new to using StackOverflow and I don't know how to properly ask this question also this is my first time using swift and some external database server.
I am creating an ios app using Xcode and I'm attempting to create an inventory to store items (300 - 1000 items) such as milk, eggs, bread etc and will have to store the product image as well as the product details such as weight, price, ingredients etc.
But I have no idea as to what to use I was thinking mysql but after doing some research I've found its best not to use blob. I've already used MySQL for the login page into the app so I assumed it was easier to use mysql for the product database as well.
The idea is the user creates an account, logs in then can view products in my made up store. I wanted to use an external database so I can give the app to friends and they can use it by downloading from the app store when it's finished.
Can you save the bytes of a large file in a database? Yes. Should you? No.
Generally speaking the proper way to handle files in a database is to store the URL of the file, not the file itself.
If the images you're using are available online and you are only need to view them, you only need to save the URL itself. There are libraries that can handle all the downloading and cacheing quite easily once you have the URLs.
If you still need to have the images locally, Save them to disk and store those local File URLs in your database.

MySQL database with an encrypted filesystem to store images

I am busy building an application that stores images of users in a filesystem,which can then be accessed by the database.
As the images should be confidential, is there a way to encrypt the filesystem and be able to link to the images from the database?
I am using PHP, MySQL, Apache, Windows.
Thank you for your time!
This is not a MySQL problem. You should store file references in your MySQL tables and handle the file encryption yourself. IOW, your app should encrypt and decrypt the images at the application level and only these encrypted files should be moved around and stored. Only the app can then display the contents of an image file. No plain readable form of the image appears anywhere else.

Is it bad to store images as Data URIs in a database BLOB?

I'm creating a mobile app that views articles. These articles are just simple html with a couple of images each. I am currently storing everything in a database. Later, I will need to save the articles locally to the device in an easy format. For this reason, I have opted to store the Base64 images within the database, using a Data URI Scheme (look here for info http://en.wikipedia.org/wiki/Data_URI_scheme).
My question is: is it okay to store this much data in one database entry? I have a table that is ONLY for these large records, with article meta data tables that point to these. Would it be better if I used TEXT fields, rather than BLOBs?
If it helps, I am using MySQL with the InnoDB engine.
Avoiding using the db to store images is a good practice, keeping the images in the db not only slows down your db performance it also increases it size and backups, if you are using cloud service then there is also the cost issue.
Use S3 or Azure for this purpose and have only the url of the images in your db.Files may be uploaded directly to to the storage service reducing load on your db server. The only thing left to do is for your mobile application to connect both this services(db and the Images service),i found this web tool to manage my mobile app db because it connect to my Images cloud service which is Azure but i think they also support Amazon S3.
Another option would be to store images in something like:
Amazon S3
and then just have a field in your database that stored the url for each image.
As long as you dont have a DB as big as facebook or similar it should be fine.
It is best to store just the path to the image and the image themselves in a folder.
hope that helps
You could also look into Azure Blob Storage. I've been using it and it's working very well.

Better store images on server or image strings on database?

i'm developing an android app where the user can take a photo. The app will have to upload it. I'm new of servers/databases. What's better? Store the image file "image.jpg" on the server or store the image string, encoded with base64, in MySQL db?
Are there other strategies?
CONSIDER THAT i will have to reload the image to visualize it on the phone.
i think better way is to store the images in a folder on the server and store their link in database..
Reasons
1) Normally time required to perform file operations is less than time required to perform database operations.
2) Updating the image is easy because its stored in file system which prevents the update operation on database which takes more time.
I think it is not a good idea to store image string in database instead of just its path (image name). Store your image on server and its name or path in database. Because retrieving image string from db and creating image for it each time you need that image is expensive. So better store its name only in server.

which way is effective to store images into database using JSP through html?

I want to store images into database using java server pages or struts via html.
time complexity and space complexity should be as less as possible.
which way is effective to store images into database using java server pages through html?
how to do that too?
is there any simple coding using Struts 2.1 for this task
I don't know your exact need, but What I suggest is instead of storing images in DB, just store name of the images as say "abc.png" in table and store the actual image in one folder and make that image folder where you are storing as configurable in properties file.
Now you can read property file and get path then just give name of image like
pathYouGetFromProprtyFile + File.seperator + imageNameYouGetFromDB
Hope this helps.
I would suggest you to convert the image to bytearray or BLOB/CLOB data format and store it in database.
From web tier you can use fileupload to upload the image, store it in temp server location. Change it to ByteArray and save it in database either using JDBC or hibernate.
Hope it will help you!!!!